Building Realtime Web Applications With ASP.NET SignalR
2. Your Presenter
Shravan Kumar Kasagoni
Software Engineer @ Thomson Reuters
Microsoft MVP – ASP.NET / IIS | MCP
Microsoft User Group Hyderabad
http://theshravan.net
@techieshravan
4. 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.
6. 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)
8. HTTP is an old beast…
Never designed for real-time
communications
Web is all about request-response
Web is stateless
10. Periodic polling
Poll from time to time using Ajax
Delay in communication due to polling interval
Wastes bandwidth & latency
Server
Client
Polling interval
11. 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
12. 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
13. 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!
17. 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]
21. What does SignalR do?
Client to Server Persistent connection
over HTTP
Easily build multi-user, real-time web
applications
Auto-negotiates transport