Skip to main content

Websockets and IIS7

So its been about 5 months since the IETF released the RFC 6455 proposal for websockets:

The websocket API is a protocol that allows for the bidirectional transfer of http/https data. This breaks down to a single initial handshake and then autonomous communication from both the server and client concurrently. With it comes a significant performance improvement (as only one handshake is needed, and client-side implementation gets much simpler) and a number of practical applications - I always think chat clients, but the applications are endless for web driven applications that require real time data transfer (HTML5 games that don't suck!)

Its no secret that websockets will not work with a standard IIS7 implementation. Http.sys is a greedy bugger, and gobbles up all connections listening on port 80. Even with WCF, there is no formally recognized workaround besides "wait for 8" and the native websocket/SOAP functionality that it will bring with it.

That being said, some folks may find a need to use websockets technology on an IIS7 server, and I found a neat prototype from Html5 Labs that can do just that: http://html5labs.interoperabilitybridges.com/prototypes/websockets/websockets/download

The protoype is WCF / Silverlight driven.

Haven't had a chance to test it yet, but I have a feeling this will come in handy in the future. Let me know what you think!

[EDIT: HTML5Labs deactivated the download to their prototype last month, sorry guys. I am not sure why - its not like 2008 is going anywhere any time soon. The good news is I am compiling some guides on using WebSockets in Windows Server 2012 here. For those developers who are not in a position to upgrade, it may be worth checking out SignalR as one alternative to websockets. SignalR relies on APM as opposed to WebSockets, and can be of benefit when establishing fast connections - it can be deployed on Server 2008 and using older browsers ]