Last week Microsoft released an update to the WebSockets prototype, which was first released late last year (December 2010).
This update brings the implementation in line with the WebSockets 04 Protocol Specification.
It’s important to note that the spec is still evolving, with the 03 version released in December, the 04 version last month and the 05 spec which just shipped yesterday. The plan is to continue to rev the code going forward and to bring the implementation in line with the just released WebSockets 05 Protocol Specification.
If you’re not familiar with WebSockets, it is a technology designed to simplify much of the complexity around bi-directional, full-duplex communications channels, over a single Transmission Control Protocol (TCP) socket.
WebSockets can be implemented in web browsers, web servers as well as used by any client or server application. The WebSocket API is currently being standardized by the W3C and the WebSocket protocol is being standardized by the IETF.
This prototype comes from Microsoft’s HTML5 Labs Web site, a place where we prototype early and not yet fully stable drafts of specifications developed by the W3C and other standard organizations. We believe that the HTML5 Labs approach has advantages over placing unstable specifications directly in browser.
First, developers can build on Internet Explorer 9 without worrying that their site will break as the underlying specs change. Second, we will iterate very quickly in HTML5 Labs and expect the standalone approach with prototypes to be closer to the latest specs.
As an example with WebSockets, most browsers are still on the outdated versions of WebSockets-00 or older.
Updating the prototype is a great way to continue to test the spec as well as let users play with new features to make sure they work the way they are supposed to and to provide feedback.
As part of the update, we posted new demos, including a casual game that shows users how WebSockets can enable new scenarios.
Building these prototypes in a timely manner will help us have informed discussions with developer communities, and give implementation experience with the draft specifications that will generate feedback to improve the eventual standards.