Gibt es gute Gründe, Websockets außerhalb des Browsers zu verwenden?

8

Websockets wurden für die schnelle bidirektionale Kommunikation im Browser entwickelt. Angenommen, Sie haben die Kontrolle über den Server und einen nativen Client (z. B. eine iOS- oder Mac-App). Gibt es gute Gründe oder Situationen, um über einen Websocket zu kommunizieren statt eine HTTP-Bibliothek zu verwenden?

    
John Wright 16.11.2010, 21:35
quelle

1 Antwort

16

Ich werde ein paar verschiedene Fragen beantworten, die hoffentlich zur Beantwortung Ihrer Frage führen:

  • Gibt es einen Grund, WebSockets von einem Client statt von HTTP zu verwenden? Ja .

    • WebSockets ist bidirektional, Vollduplex, geringe Latenz und geringer Overhead im Vergleich zu HTTP.

    • Ein Teil der niedrigeren Latenz und des Overheads im Vergleich zu HTTP / AJAX / COMET besteht darin, dass Sie die Verbindung nicht für jede Anforderung neu herstellen müssen.

  • Gibt es einen Grund, WebSockets von einem Client statt von rohen Sockets zu verwenden? Ja .

    • Der anfängliche WebSockets-Handshake ist HTTP-Server-freundlich (und hat einige Ursprungs- und Hash-Austausch-Sicherheitsmechanismen). Es ermöglicht Webservern, einfach aktualisiert zu werden, um Redirect oder Proxy für WebSockets-Verbindungen zu der echten WebSockets-Server-Anwendung zu unterstützen.

    • Ein weiterer Vorteil von WebSockets ist, dass es sich um ein gerahmtes Protokoll handelt, das es der Anwendung ermöglicht, sich auf nützliche Funktionen zu konzentrieren, ohne sich um eigene Framing- und Pufferfunktionen kümmern zu müssen.

    • Es ist relativ einfach, bestehenden TCP-Socket-Servern oder Proxy-Servern WebSockets-Unterstützung zu geben, etwa über wsproxy . Disclaimer: Ich habe wsproxy gemacht.

    • Von einer Serverperspektive aus ist WebSockets ein Gewinn, da auf sie über Standalone-Clients oder über Browser zugegriffen werden kann. Dies bedeutet, dass es immer mehr Dienste geben wird, die derzeit TCP-Socket-basiert sind und über WebSockets verfügbar gemacht werden. Das Hinzufügen eines WebSockets-Supports zu einem Client wird sich in Zukunft auszahlen.

kanaka 16.11.2010, 22:00
quelle

Tags und Links