refactoring & fix subprotocols
fix subprotocols
uses of ByteArrayBuffer
support unlimited binary size
accurately implement a readyState property