An Introduction to
WebSockets
Steve Agalloco
May 20th 2010
twitter.com/anno
beforeitwasround.com
steveagalloco.com
About Me
• New to Charlotte (Hello!)
• Developer at TradeKing
• recovering Java programmer, currently
working primarily with Ruby and Rails
• interested in NoSQL, Node, HTML5
Realtime Web
• Round Trips - meta refresh, onchange
events
• Ajax
• Comet - long polling
• Flash XMLSocket
The ugly side of Ajax
The ugly side of Comet
WebSockets
• Part of HTML5
• Bi-directional communication between
browser and server
• Works with Proxy/Firewall
• Less network overhead
• Faster than Ajax/Comet
More Details
• It’s own protocol (ws://)
• different headers
• Language support - libraries available for
Ruby, Node.js, Erlang, PHP, Java, Python, etc.
Possible Uses
• Realtime Data - Chat, Stocks, Sports
• Presence
• Collaboration
• Notifications
Browser Support
• Chrome and WebKit support now
• Safari 4.x (anticipated)
• Firefox 4.0 (expected in November 2010)
• Internet Explorer (no indications it’ll be
supported in IE 9)
• Fallback to our old friend... Flash
http://github.com/gimite/web-socket-js
Client-Side Code
Example
In the Wild
• http://hummingbirdstats.com
• http://pusherapp.com
Thank You!
• http://github.com/spagalloco - Fork me!
• http://github.com/spagalloco/websockets-
example