Codecamp Iasi-26 nov 2011 - Html 5 WebSockets
- 2. Agenda
Real-time web SSE, Q&A
WebSockets
Demo: Demo: WebSockets in
long polling Windows 8, ASP.NET
& WCF 4.5
- 3. How do we implement real-time
web?
periodic ajax polling
comet/long polling/http streaming …
flash/javafx/silverlight
html5 server-sent events
html5 web sockets
- 4. Polling
Browser connect Server
no
message
connect
no
event
message
connect
event
connect
no
message
connect
no event
message
connect
event
- 5. Polling
No real-time user experience
Wasted bandwidth, most requests return no
data
Frequent polling determine high server loads
- 9. Html5 server-sent events
Simulates a server push channel over HTTP
Unidirectional, from server to browser
Standardizes some form of Comet/http
streaming
New html tag: <EventSource>
New mime type: text/event-stream
- 10. Html5 WebSockets
GET /text HTTP/1.1
Client/Browser Upgrade: WebSocket
Server
Connection: Upgrade
Host: www.websocket.org ...
HTTP/1.1 101 WebSocket Protocol
Handshake
Upgrade: WebSocket ...
TCP comm channel
Full
duplex, bidirectional
- 11. Html5 WebSockets
Full duplex, bidirectional
Single TCP socket
Standard ports: http/80, https/443
Bandwidth savings
Higher scalability comparing with Comet
In&outside of browser
IETF WebSockets Communication protocol
W3C WebSockets API
- 12. Server side support
Socket.IO (node.js) Socket.IO Fallbacks
Jetty (Java) Adobe Flash Socket
Ruby/EventMachine AJAX Long Polling
Python/Twisted AJAX Multipart
Streaming
Windows 8, IIS 8, ASP.NET-WCF
4.5 Forever iFrame
… others JSONP Polling
http://socket.io/
- 15. WebSockets @Microsoft
Your code!
WCF high level
abstractions
ASP.NET high level
WCF WebSocket transport
abstractions
System.Net.WebSockets
ASP.NET HTTP Pipeline
HttpListener IIS (iiswsock.dll)
http.sys
- 18. Please fill your evaluation form
Thank you!
Florin Cardașim, twitter.com/@cardasim
Endava
26 nov 2011