Firefox 6 - WebSockets are back
hacks.mozilla.org
hacks.mozilla.org
In the new protocol, Websockets traffic is (trivially) encoded so that it (a) can't accidentally be interpreted by either endpoint as something other than Websockets and (b) can't confuse middleboxes.
Basically, "new" Websockets has custom Websockets encryption that nothing other than Websockets will be speaking, so, if you're talking Websockets, it's because both endpoints consented to do so.
http://w2spconf.com/2011/papers/websocket.pdf
(Full disclosure: I'm a co-author of that paper.)
You can store a lot more than that in IndexedDB. The browser asks the user every 20MB or so.
Funny, I just posted this link to Rwaldron's coverage right before you posted to the link he is responding to.
The advantages of WebSockets include constantly changing specifications which are neither backwards- nor forwards-compatible, a lack of proxy traversal, an arbitrary and unreasonable limitation on binary data transfer, and lack of unified browser and server support.
With Firefox 6.0, I had to spend some time to upgrade our little Python server, but now it happily serves both -76 and -07. It also looks like -07 is very close to being signed off on as the actual standard, so the compatibility problems are probably a thing of the past soon (-76 and -07 are actually completely trivial to discern from a server point of view).
I haven't tried with binary data, but it looks like it's explicitly supported with -07. Not sure about proxies, they aren't relevant to our work app.
In theory, there's no good reason we can't have binary frames; I have internally filed it under the "Why can't we have nice things?" category.
Yes, I understand that proxies may assume HTTP is request/response... but that's fine. My app breaks when you use that proxy. I can live with that.
The future-proof fix is to add some Cache-control header that says, "hey, this response is infinitely long! don't cache!".