Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Real-time Communications with SignalR

Real-time Communications with SignalR

Shravan Kumar Kasagoni

May 19, 2015
Tweet

More Decks by Shravan Kumar Kasagoni

Other Decks in Technology

Transcript

  1. 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.
  2. 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)
  3. HTTP is an old beast… Never designed for real-time communications

     Web is all about request-response  Web is stateless
  4. Periodic polling  Poll from time to time using Ajax

     Delay in communication due to polling interval  Wastes bandwidth & latency Server Client Polling interval
  5. 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
  6. 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
  7. 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!
  8. Introducing SignalR • Abstraction over transports • Events instead of

    task/async • Connection management • Broadcast or target specific client
  9. What does SignalR do? • Client to Server persistent connection

    over HTTP • Easily build multi-user, real-time web applications • Auto-negotiates transport
  10. 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