Orbited

State of WebSocket Support

by Dylan SchiemannNovember 4th, 2010

Things are stabilizing and still changing in the realm of WebSocket support. I’ll quickly summarize the current state of WebSocket support in various browsers and highlight the differences in versions.

WebSocket Transport Specification

The WebSocket transport specification was recently moved from HTML5 to the IETF. There’s a useful diff comparing IETF WebSocket draft 2 and 3. Most of the changes are just text clarifications, with some minor refinements of Close, Ping, and Pong. Current browsers support Draft 75 and Draft 76, the two versions prior to moving to the IETF. There are some slight differences in these versions which Comet servers such as Hookbox currently address, and there are still some issues with getting proper cross-domain messaging working correctly with these drafts.

ws:// and wss://

If you weren’t paying attention in the past year or so, one major change it that the specification defines ws:// and wss:// to define normal and secured WebSocket servers, instead of the http:// and https:// that web developers are familiar with, which is a nice improvement to differentiate between server types.

Desktop Browsers

All non-IE desktop browsers currently have support in either their latest development or production releases. Support is as follows.

Draft 75

  • Chrome 5
  • Safari 5.0

Draft 76

Mobile Browsers

Currently there are no known mobile browsers with WebSocket support. The development version of Apple iOS 4.0 had support but removed it from production. It is believed the iOS 4.2 will ship with WebSocket enabled, and that Android will soon support it as well.

Update: iOS 4.2 and Blackberry 6 currently support WebSockets.

Toolkits

There are two common approaches by toolkits:

  • Provide an API that looks like WebSocket, and fallback to other techniques if WebSocket isn’t available. Examples include Hookbox, dojox.Socket, Socket.IO, web-socket-js, Comet Session Protocol compliant toolkits, and others.
  • Provide a higher-level API using pubsub or some other messaging protocol, and use WebSocket or whatever other transport is available that is the fastest and safest option. Examples include CometD, Lightstreamer, Bayeux protocol compliant servers, and others.

Conclusion

While the jury is still out on support in Internet Explorer 9 and mobile browsers there are some issues to resolve with the protocol, WebSockets have arrived, are in much wider use than a year ago, and toolkits and servers have emerged to make working with Comet far easier than ever.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]
Webtide

9 Responses to “State of WebSocket Support”

  1. Lukas Says:

    I can confirm that iOS 4.2 supports WebSockets:
    http://blog.liip.ch/archive/2010/11/08/mobile-safari-on-ios-4-2-supports-websockets.html

  2. Adam Says:

    Can you elaborate on IE9? Is there any support? Will there be? Do any 3rd part mobile browsers have or plan to support WS; I’m thinking Fennec and Opera Mobile? Also do browsers that work with draft 76 also support Draft 75? Thanks!

  3. Mark Boas Says:

    Apparently Blackberry6 supports Websockets : http://uxebu.com/blog/2010/10/25/blackberry6-webkit-webworks-devcon10-etc/

  4. DylanSchiemann Says:

    Thanks @Lukas and @Mark, updated post about iOS 4.2 and BB6.

    @Adam, At the moment, we have no idea if IE9 will add it or not. I haven’t seen it in Fennec but it may be there. Opera just added to to their desktop browser, not yet in mobile. Browsers that support draft 76 do not have a way to fallback to an older version. The differences are minor, but projects like Hookbox, Dojo, and Socket.IO do include some feature detection for handling these issues.

  5. WebSocket and Socket.IO Says:

    [...] [...]

  6. Many Comet Solutions for your Real-time Apps | SitePen Blog Says:

    [...] back to the days of mod_pubsub and early talks on event-driven user interfaces. Now, with the arrival of WebSockets in WebKit-based browsers, and expected in Firefox 4.x and Internet Explorer 9 once the next [...]

  7. Comet Daily » Blog Archive » An Update on WebSockets Says:

    [...] CNet recently had an update on the work being done to get WebSockets back on track. This is a good, optimistic update on the current state of WebSocket support. [...]

  8. Keith Blanchard Says:

    I confirm that Firefox 4 Websockets work on the Android. You just have to go to about:config and enable it.

  9. micha Says:

    @Keith:
    which option do I need to set to enable the Websockets on Android?

Leave a Reply



Copyright 2014 Comet Daily, LLC. All Rights Reserved