Developer Conference 2012 MICROSOFT USER GROUP KOLKATA
Web Sockets – Building Real Time App for WebSankarsan Bose26th May , 2012
The Real Time “Web” Real Time Web - Real time information delivery - Instant updates, searches - Facebook, Twitter.. Etc. Technologies - HTTP essentially is still stateless - Technologies/Techniques we have to support the same are - AJAX (XMLHttpRequest) - Long Polling - Comet Challenges - Clients polling for data, ideally where server should broadcast - Overhead of Multiple TCP connections Same/similar header data being transferred each time over the wire Customized ways to tracking or correlating requests and responses.
WebSockets - Introduction WebSockets - WebSockets is a protocol for two-way communication between client and server - Uses a single TCP connection. - Takes away overhead of - Multiple TCP connections - Same/similar header data being transferred each time over the wire - Customized ways to tracking or correlating requests and responses. - Part of HTML5 initiative - WebSocket Specs has - Protocol Specification - API Specification - Supported by Google Chrome, Firefox,IE 10 - Server side support by Jetty,Node.js (Socket.io), IIS 8.0 (on Windows 8)
WebSockets with IIS 8.0 and IE10Let’s go to the code…
WebSocket - API Client Server (Browser) Establish Connection var ws= new WebSocket("ws://www.websockets.org"); Connection EstablishedOnOpen eventfired Data Sent to ServerSend method Data Sent from ServercalledOnMessageevent is fired Close Connection Close method is called Connection ClosedOnCloseEvent is fired
WebSockets Protocol Client Server (Browser) Send HTTP Request for protocol switch/upgrade - If server understands WebSocket protocol - It issues HTTP 101 - There is a protocol switch - HTTP connection is no longer used - WebSocket connection takes over the underlying TCP connection