- From: Stefan Hakansson LK <stefan.lk.hakansson@ericsson.com>
- Date: Tue, 14 Feb 2012 19:00:22 +0100
- To: public-webrtc@w3.org
On 02/13/2012 07:54 PM, Timothy B. Terriberry wrote: > Stefan Hakansson LK wrote: >>>> * The API should initially enable sending and receiving DOMString, >>>> Blob and ArrayBuffer data >>> >>> Like to know more but suspect I won't care >> >> This is basically the data types that you can send/receive with >> WebSockets, so it is an alignment. > > I was curious how WebSockets distinguishes these things on the wire, so > I did some digging. The WebSockets protocol > (http://www.rfc-editor.org/rfc/rfc6455.txt) has a 4-bit "opcode" field > that lets it specify "binary" or "text" data messages and can signal > various control messages ("close", "ping", "pong", etc.). > > But it doesn't distinguish between "Blob" and "ArrayBuffer". Instead, > the WebSocket API (http://dev.w3.org/html5/websockets/) has a > user-settable "binaryType" attribute, which can be set to the string > "blob" or "arraybuffer", and whatever incoming binary messages arrive > will be delivered as an object of that type. Incoming text messges are > delivered as DOMStrings (they have to be distinguished from binary, > because of the need to convert the on-the-wire UTF8 to and from whatever > JS-land is expecting). On the sending side, DOMStrings go out as "text" > and both Blobs and ArrayBuffers go out as "binary". > > Also, despite protocol support for 16 exabyte messages, they are limited > to 16 MB by default. > Tim, thanks for looking this up. This was valuable input. //Stefan
Received on Tuesday, 14 February 2012 18:00:50 UTC