Your Presenter Shravan Kumar Kasagoni Software Engineer @ Thomson Reuters Microsoft MVP – ASP.NET / IIS | MCP Microsoft User Group Hyderabad http://theshravan.net @techieshravan
Agenda Introduction to real-time apps What is SignalR? Demos SignalR Components Scaleout SignalR
Real-time Application? Real-time functionality is the ability to have server code push content to connected clients instantly as it becomes available, rather than having the server wait for a client to request new data.
Why Real-time? Users want the latest info, NOW!
Show Me Some Examples  Twitter, Facebook, Mail - live searches/updates  Stock streamers  Auctions  Interactive games  Live Scores  Collaborative apps (google docs, office web apps)  Live user analytics (live graphs)
How to build real-time web apps?
HTTP is an old beast… Never designed for real-time communications  Web is all about request-response  Web is stateless
Periodic polling  Poll from time to time using Ajax  Delay in communication due to polling interval  Wastes bandwidth & latency Server Client Polling interval
Long polling  Poll but doesn’t respond until there's data  Poll again after data received or after the connection times out  Consumes server & threads & connection resources Server Client
Forever Frame  Server tells client that response is chucked  Client keeps connection open until server closes it  Server pushed data to the client followed by 0  Consumes server threads Server Client
HTML5 Web sockets  Extension to HTTP  Provides raw sockets over HTTP  Full-duplex  Traverses proxies  It's still a draft  Not every proxy server supports it  Not every web server supports it  Not every browser supports it  They are raw sockets!
too many options
What is SignalR? An open-source series of libraries that provide an abstraction around persistent HTTP connections SignalR makes real-time HTTP so easy it seems like magic that it works [In English, please]
SignalR on Old Servers or Clients
SignalR on New Servers and Clients
Basically…
What does SignalR do?  Client to Server Persistent connection over HTTP  Easily build multi-user, real-time web applications  Auto-negotiates transport
SignalR Fallback Long Polling Forever Frame Server Sent Events Web Sockets
http://shootr.signalr.net http://firework.cloudapp.net
CLIENTS BACKPLANESHOSTS
Three backplanes  Windows Azure Service Bus  SQL Server  Redis
Backplane Load balancing via a common transport mechanism
References http://www.asp.net/signalr/ http://signalr.net/ https://github.com/SignalR/SignalR/wiki
Keep in touch http://theshravan.net @techieshravan shravan.kasagoni@outlook.com
Building Realtime Web Applications With ASP.NET SignalR

Building Realtime Web Applications With ASP.NET SignalR