No technical comments. A few editorial comments.
> CLOSING (numeric value 2) > The connection is going through the closing handshake. The readyState can enter CLOSING also when close() is called before establishment. In that case, it's not going through closing handshake. > // networking > attribute EventHandleronopen; insert an SP between EventHandler and onopen (already fixed on the editor's draft) > When the user agent validates the server's response during the "establish a WebSocket connection" algorithm, if the status code received from the server is not 101 (e.g. it is a redirect), the user agent must fail the websocket connection. websocket -> WebSocket > If the user agent was required to fail the websocket connection or the WebSocket connection is closed with prejudice, fire a simple event named error at the WebSocket object. [WSP] websocket -> WebSocket > interface CloseEvent : Event { > readonly attribute boolean wasClean; > readonly attribute unsigned short code; > readonly attribute DOMString reason; > }; missing anchor on reason to its description