diff options
Diffstat (limited to 'third_party/websockify/README.md')
-rw-r--r-- | third_party/websockify/README.md | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/third_party/websockify/README.md b/third_party/websockify/README.md index 48c790af..2cfac0f5 100644 --- a/third_party/websockify/README.md +++ b/third_party/websockify/README.md @@ -11,11 +11,24 @@ the target in both directions. ### WebSockets binary data Websockify supports all versions of the WebSockets protocol (Hixie and -HyBI). The older Hixie versions of the protocol only support UTF-8 +HyBi). The older Hixie versions of the protocol only support UTF-8 text payloads. In order to transport binary data over UTF-8 an -encoding must used to encapsulate the data within UTF-8. Websockify -uses base64 to encode all traffic to and from the client. This does -not affect the data between websockify and the server. +encoding must used to encapsulate the data within UTF-8. + +With Hixie clients, Websockify uses base64 to encode all traffic to +and from the client. This does not affect the data between websockify +and the server. + +With HyBi clients, websockify negotiates whether to base64 encode +traffic to and from the client via the subprotocol header +(Sec-WebSocket-Protocol). The valid subprotocol values are 'binary' +and 'base64' and if the client sends both then the server (the python +implementation) will prefer 'binary'. The 'binary' subprotocol +indicates that the data will be sent raw using binary WebSocket +frames. Some HyBi clients (such as the Flash fallback and older Chrome +and iOS versions) do not support binary data which is why the +negotiation is necessary. + ### Encrypted WebSocket connections (wss://) |