Frage

Ich habe gehört, über die Web Sockets-Schnittstelle in der HTML-Datei-Spezifikation aus einer relevanten Frage hier .
Es klingt sehr vielversprechend!
Ich verstehe nicht, wie es funktioniert funktioniert es immer noch das HTTP-Protokoll verwenden und arbeitet-drum herum oder es so etwas wie TCP-Sockets funktioniert?

War es hilfreich?

Lösung

Das WebSocket-Protokoll ist ein TCP-basiertes Protokoll, aber es ist Design zu HTTP degradieren. Es gibt auch einen HTTP-Handshake, der den Server an den Web-Sockets-Protokoll aktualisieren fragt. Also, wenn der Server unterstützt wird, dann beidseitige TCP-Verbindung verwendet werden, sonst greift auf HTTP und die Comet-Hacks für die.

Andere Tipps

In gewisser Weise ist es sowohl eine HTTP-Anforderung und ein regelmäßiger TCP-Socket.

A websocket Verbindung wird eine normale HTTP-Anforderung über TCP angefordert werden. Es gibt einige Header gesendet, die auf den Webserver anzuzeigen, dass es sich um eine WebSocket ist, die eine normale Seite wird, angefordert und nicht aber im Grunde es ist nur eine HTTP-Anfrage.

Nach der Antwort vom Server gesendet wird, wird die Verbindung aufgewertet. Das heißt, die TCP-Verbindung, die für HTTP verwendet wurde für eine höhere Berufung entführt. Bidirektional, Echtzeit-Datenübertragung

Wenn Sie die Möglichkeit haben, in zwei Richtungen zu kommunizieren und effizient (das ist der Hauptgewinn über Kometen ist), ist der Horizont des Entwicklers stark erhöht. Plötzlich Dinge wie MMO-Spiele und Echtzeit-Zusammenarbeit, die nur Web-Technologien nicht möglich verwenden waren, möglich.

Es ist nicht HTTP, noch ist es klar, TCP-Sockets. Es ist entworfen, um die geringe Overhead von regulären Socket-Verbindungen (AJAX / COMET ist sehr hoch oben) zu bekommen, aber ohne einige der Browser-Sicherheit Grundsätze zu opfern, die in den letzten Jahren entwickelt wurden.

Der erste WebSockets Handshake sieht viel wie HTTP. Dadurch wird es einfacher für bestehende HTTP-Proxies und Web-Server eingehende WebSockets-Verbindungen zu unterstützen und mit ihnen das Richtige tun (das heißt, sie auf dem realen Handler Weiterleitung). Aber nach einem erfolgreichen Handshake (die den Austausch und die Validierung von Informationen über das Herkunfts enthält), die Verbindung bleibt offen und wird bidirektional.

Jedes Paket von Daten (ob vom Server oder vom Client gesendet) beginnt mit einem ‚\ x00‘ (Null-Byte), gefolgt wird von UTF-8-codierten Daten und endet mit einem ‚\ xff‘ (nur Einsen Byte) .

Die aktuelle Norm-Entwurf ist hier: http://tools.ietf.org / html / draft-Hixie-thewebsocketprotocol-76

Sie können auch die wsproxy in noVNC enthalten finden als Referenz nützlich zu sein. wsproxy ist ein generisches WebSockets auf TCP-Socket-Proxy. Es gibt sowohl eine C und Python-Version von wsproxy enthielt mit noVNC.

http://github.com/kanaka/noVNC/tree/master/utils /

In einer solchen Situation die Rolle des Servers kommt, wenn:

In HTML 5, WebSocket wie ein fone (2-Wege-comm.) Nicht Walky-Talky. HTTP-Protokoll zu websocket protocol.(wss:// from ws://) Server aktualisiert soll in der Lage sein, Duplexkanal zu öffnen und somit mit Duplex-Kommunikation übereinstimmen. Bitte gehen Sie auch über diesen Link: http://www.html5rocks.com/en/tutorials/websockets/basics/

Danke.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top