3. 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.
7. 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)
11. Periodic polling
Poll from time to time using Ajax
Delay in communication due to polling interval
Wastes bandwidth & latency
Server
Client
Polling interval
12. 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
13. 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
14. HTML5 Web sockets
Extension to HTTP
Provides raw sockets over HTTP
Full-duplex
Traverses proxies
It's still a working draft
Not every proxy server supports it
Not every web server supports it
Not every browser supports it
They are raw sockets!
18. Introducing SignalR
• Abstraction over transports
• Events instead of task/async
• Connection management
• Broadcast or target specific client
19. What does SignalR do?
• Client to Server persistent connection over HTTP
• Easily build multi-user, real-time web applications
• Auto-negotiates transport
21. What does SignalR do?
• Allows server-to-client push and RPC
• Built async to scale to 1000’s of connections
• Scale out with Service Bus,
SQL Server & Redis
• Open Source on GitHub