2

I found many things when searching, but nothing that seemed both updated and complete.

In last quarter of 2010 I remember reading what were very sad news for me, as WebSockets were disabled in most (if not all? can't remember) modern browsers that supported it by default due to security concerns in the proxy protocol the WSP uses. I wonder what's the current state of the issue and if there's any known plans from the next version of browsers to start enabling WS by default.

I know that in Chrome 13b I get it enabled and I don't think I enabled it myself, but the same does not happen in the other browsers I use.

Also, what draft is being used in the current versions? I will be giving a presentation on HTML5 for a group of developers next month and this is the topic I think I'm the least updated on. I need to implement current protocol to at least feel certain I know what I'm talking about and have no problem answering questions :)

As many technical and specific details as possible will be greatly appreciated.

Mamsaac
  • 123
  • 4

2 Answers2

4

Firefox 6, Chrome and Safari support websockets and have them enabled.

Firefox 4+ and Opera 11 support websockets and have them disabled.

IE is spreading FUD and refuses to support websockets.

Browser Support

As can be seen by the browser support chart there are many versions of the HTML5 Websocket specification.

Version76 and version75 have many server-side implementations of the websocket API.

There are less 06/07 server-side implementations.

The only really stable server-side websocket server abstraction I know of. (That doesn't involve writing your own websocket server) is Socket.io

Raynos
  • 8,562
  • 33
  • 47
  • Thank you. Do you know what is going on with the security at the moment? I've implemented Version 75 and 76 so it won't be a problem. And I've used Socket.IO, but considering the public is Microsoft employees... I can't use NodeJS – Mamsaac Jul 10 '11 at 05:26
  • The ruby em-websockets gem is well maintained and up-to-date – dan_waterworth Jul 10 '11 at 07:24
  • @Mamsaac you realise that microsoft is backing nodejs for Windows support right? There is strong on-going development to get node 0.6 working on windows. You _can_ use NodeJS. By the time you've finished your application, 0.6 will be released with windows support ;) – Raynos Jul 11 '11 at 03:10
4

Actually, the security concerns didn't really change the list of browsers that support WebSockets. Mozilla and Opera decided to postpone activation of WebSockets by default (you can still enable it manually) due to the concern but it was never active there in the first place.

Current versions of Chrome, Safari and the iOS browser have WebSockets (Hixie-76) included and enabled by default. None of them were disabled due to the security concerns (which are not in WebSocket itself but a theoretical concern in caching intermediaries).

Firefox will likely have WebSockets enabled by default in version 7. The current Aurora build of version 7 has WebSockets protocol HyBi-08 (the HyBi versions of the protocol are where the security concerns have been addressed).

I expect that Chrome (and therefore Safari) will switch HyBi version of the protocol very soon.

Microsoft has a downloadable WebSockets implementation that implements a HyBi version of the protocol. They have not given a timeline of when this will be included by default in IE.

You can also use the Flash polyfill/fallback web-socket-js which allows any browser with Flash to use WebSockets. The current version of web-socket-js implements Hixie-76 but there is a branch that implements HyBi-07.

The HyBi version of the protocol has been fairly stable for the last several versions (mostly just textual changes in the protocol document itself). The current version is 09 and it was just proposed for publication by the IESG/IETF. It is likely that there will be one more revision (10) before actual publication.

The WebSocket API has not changed in a backwards incompatible way since it was first implemented in Chrome. It's not likely to change in the future in an incompatible way either (the binary support will be backwards compatible).

Conclusion: The WebSocket API is stable and the protocol is heading towards being published by the IETF. Most browsers either have support or can use the web-socket-js polyfill. It's time to start using WebSockets.

kanaka
  • 141
  • 2