The Updated WebSockets Prototype

Following hot on the heels of last week’s update to the IndexedDB prototype, I am pleased to announce that we have also updated the WebSockets prototype, a move that brings the implementation in line with the WebSockets 04 Protocol Specification.

In short, we added a new type of masking in the protocol that is consistent with the 04 protocol specification. We also increased the maximum size for messages from the 125 character limit in the previous implementation.

However, 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.

WebSockets 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. It 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.

For this early WebSockets prototype we are using a Silverlight plug-in on the client and a WCF service on the server. In the future, you may see HTML5 Labs using a variety of other technologies.

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 are posting new demos, including a casual game that shows users how WebSockets can enable new scenarios.

This prototype forms part of our 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.

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.

Claudio Caldato,

Principal Program Manager, Interoperability Strategy Team