SignalR Across Web and Devices - By Pluralsigh

Tags: SignalR, .Net

Note: This is for my personal reference. Might will not make any sence for others. Please refer to https://app.pluralsight.com/library/courses/signalr-across-web-devices.

SignalR ? : is an asynchronous, persistent connection or signaling library for ASP.NET applications as dedicated tunnel that allows us to have true bidirectional communication between the client and the server at anytime. SignalR makes it super easy to build applications that exude real-time communication. Invented by David Fowler and Damian Edwards

https://github.com/SignalR/SignalR

SignalR Sample Code

Transport protocol / method:

  • WebSockets
  • ForeverFrame
  • ServerSentEvents
  • LongPolling

SignalR API modes

  1. Hubs - is a sophisticated high level of abstraction built on top of the persistent connections, and it leads to the least amount of developer work.
    • High level abstraction
    • Built on top of Persistent Connections
    • Least developer work
    • Works for majority of uses
    • Will be familiar to developers who have used remote invocation APIs such as .NET Remoting
  2. Persistent Connections
    • Low level access to communication
    • Direct developer access to network pipeline
    • Access to lot more communication events
    • Will be familiar to developers who have used connection-based APIs such as WCF

SignalR Platform Support – Server Side

  • Server OS
    • Windows Server 2012
    • Windows Server 2008 r2
    • Windows 8
    • Windows 7
    • Windows Azure [Does not support Web Sockets yet]
  • Server .NET Frameworks
    • .NET 4.5
    • .NET 4 [Does not support Web Sockets]
  • Server IIS Requirements
    • IIS 8 or IIS 8 Express [Only ones with Web Socket support]
    • IIS 7 and 7.5.
    • IIS must be running in integrated mode
    • The hosting application must be running in full trust mode
  • SignalR applications can be self-hosted in own process outside of IIS using OWIN (Open Web Interface for .NET) techniques

SignalR Platform Support – Client Side

  • Client Browsers
    • Microsoft Internet Explorer (IE) versions 8, 9 and 10. Modern, Desktop, and Mobile versions are supported.
    • Mozilla Firefox: current version - 1, both Windows and Mac versions.
    • Google Chrome: current version - 1, both Windows and Mac versions.
    • Safari: current version - 1, both Mac and iOS versions.
    • Opera: current version - 1, Windows only.
    • Android browser
  • Applications that use SignalR in browsers must use jQuery version 1.6.4 or major later versions
  • Windows Desktop & Silverlight applications
    • Applications using .NET 4 are supported on Windows XP SP3 or later.
    • Applications using .NET Framework 4.5 are supported on Windows Vista or later.
  • Windows Store & Windows Phone applications

SignalR packages available via NuGet

  • Microsoft.AspNet.SignalR : package that brings in everything you need to run it on IIS and ASP.NET
  • Microsoft.AspNet.SignalR.Core : server side components needed to build SignalR endpoints
  • Microsoft.AspNet.SignalR.SystemWeb : pulls in the required packages to host SignalR in ASP.NET (via OWIN ASP.NET host)
  • Microsoft.AspNet.SignalR.Owin : OWIN host for SignalR
  • Microsoft.AspNet.SignalR.Js : jQuery client for SignalR
  • Microsoft.AspNet.SignalR.Client : .NET client for SignalR (includes WinRT, Windows Phone 8 and Silverlight5 clients)
  • Microsoft.AspNet.SignalR.Utils  : command line utilities including performance counter installation and Hub JavaScript proxy generation