2010-09-27 11 views
10

Ich las durch die Spezifikation und viele Beispiele über die Verwendung von Websockets. Fast alle von ihnen sprechen über UTF-8 oder ASCII-Übertragung mit Hilfe von Websockets.websocket für die binäre Übertragung von Daten und Decodierung

Die neueste Hybi Websocket-Spezifikation forderte Unterstützung für die Binärübertragung. REQ 6 in hybi spec

Auch ich habe irgendwo gelesen, dass Chrom hybi unterstützt. Die neueste Version von Chrome 7.0 funktioniert jedoch nur, wenn in pywebsocket config draft-hixie ausgewählt ist.

Hat irgendein Browser Unterstützung für hybi spec? Auch wenn es Dev ist, ist es in Ordnung.

+2

Ich denke, dass Sie das jetzt wissen, aber als allgemeine Aktualisierung für alle - Chrome Canary unterstützt dies jetzt. – pimvdb

Antwort

7

Es kann eine Weile dauern, bevor nicht-UTF-8 (d. H. Binäre) Codierung in WebSockets unterstützt wird.

Ich empfehle die Verwendung von Base64 encode/decode auf dem Client und Server. Alle Browser mit WebSockets-Unterstützung haben window.atob (base64 decode) und window.btoa (base64 encode). Die meisten Sprachen, in die Sie einen WebSockets-Server schreiben können, verfügen über Base64-Bibliotheken (z. B. Base64-Modul in Python).

Wenn Sie binäre Daten übertragen möchten, könnten Sie in wsproxy mit noVNC enthalten sein, das ein webbasierter VNC-Client ist. wsproxy (es gibt eine C- und Python-Version) ist ein WebSockets-generischer TCP-Socket-Proxy. Es base64 codiert/decodiert den gesamten Verkehr zum/vom Browser. Sie können damit eine Verbindung von einem WebSockets-fähigen Browser zu einem beliebigen TCP-Port herstellen.

Hinweis, noVNC hat eine Javascript-Implementierung von base64 encode/decode, weil Sie es glauben oder nicht, die Javascript-Version ist etwas schneller als atob/btoa.

Haftungsausschluss: Ich habe noVNC erstellt.

+1

Update: Der IETF-07-Entwurf des WebSockets-Protokolls befindet sich im letzten Aufruf und verfügt über Binärrahmenunterstützung. Hier ist ein Fehler bei der Diskussion von API-Änderungen, um die binäre Unterstützung hinzuzufügen: http://www.w3.org/Bugs/Public/show_bug.cgi?id=12102 – kanaka

Verwandte Themen