Skip to content
marci4 edited this page Mar 22, 2017 · 18 revisions

Overview

The WebSocket protocol has been evolving since 2009. The different specifications have different features which are incompatible with each other.
For every protocol version that affects the way bytes are transfered there is a corresponding class derived from Draft. The protocol version implementaions will be referenced to as drafts from now onwards.

The WebSocketServer detects any draft of a connecting client by default.
The WebSocketClient on the other hand is the one who initiates the connection and therefore has to decide which draft to use.

By enabling the debug mode ( WebSocketImpl.DEBUG = true;) the used Draft(s) will show up in the console(std::out).

Draft

Unknown

Draft10

Draft10 implements Hybi 10. This draft is supported by Chrome15 and Firefox6-9.

Draft17

Draft17 implements Hybi 17/RFC 6455 and is currently supported by Chrome16+ and IE10.
Since this protocol version made it into an RFC state it is expected to last longer than a month.
This is the recommended draft when you want to use a browser as a websocket client.

Draft75

Draft75 implements Hixie 75.
You should no longer relay on this drafts since it is deprecated and not supported by current browsers! Why Chrome dropped WebSocket backwards compatibility.

Draft76

Draft76 implements Hixie 76.
You should no longer relay on this draft since it is deprecated and not supported by current browsers! Why Chrome dropped WebSocket backwards compatibility.