Topics Focused On!!!• Traditional Web Approach• What does “Real Time” mean?• SignalR – “The Rockstar”• Quick Glance at - Transport Techniques• Types of Connections• How do I get SignalR?• Demo
Traditional Web Approach Sends a Request to the Server – (Step 1) [In other words, the Client is trying to pull some information from the Server] SERVERCLIENT Response Sent back to the Client – (Step 3) Processes the Request (Step 2)
What is Real Time Web Application?• In simple terms, “Real Time” means an immediate response being sent by the Server to the Client.• Real Time is all about “Pushing” instead of “Pulling”• Push Technology is completely different from Pull Technology. Its about getting told what’s new, instead of asking for what’s new!!!• Facebook, Twitter, Yahoo Cricket Live, Stock Ticker
Real Time Web Approach User Sends a Request to the ServerCLIENT Creates a Persistent Connection between them SERVER Response Sent back to the Client Response Sent back to the Client Response Sent back to the Client
SignalR – The Rockstar• SignalR is an asynchronous library. Used to develop Real Time Web Application.• Concept intiated by “David Fowler” and “Damien Edwards”• Provides Client to Server persistent connection over HTTP.• Makes use of Push Technology.• Provides Abstraction over the set of transports.• Open Source available on Github!!!
Transport Priority WebSockets Server-Sent events Forever Frame (IE hack) Long Polling
WebSocket• A new transport technique which came up with HTML5.• It internally works on top of TCP protocol. Pros Cons Full-duplex persistent Supported only on latest connection (both ways) browsers – (IE 10) Fastest solution Works only with IIS-8.0
Forever Frames• Data is sent out in chunks.• Internally creates an Iframe along with a script on the page to fetch the data. Pros Cons Supported on IE Browser. Iframes are loaded again and again with chunks of data. All script tags remain on the page
Long Polling Server ResponseRequest Variable delay Client Time: requests event ‘n’ seconds (variable)
Persistent Connection• Provides a raw / low-level control to manage connection.• Contain events like “OnConnection”, “OnDisconnection”, “OnReconnection”• We can write our own logic in these events.
Hubs• Provides a High-level API.• Client calling Server.• Server calling Clients. (All, Groups, One).• Broadcasting messages to all connected clients.• Works in a similar way like a “Controller”