What is SignalR?
With the development of many applications that provide realtime communication with clients, many developers are turning to WebSockets or HTTP Long Polling to deliver this functionality. Both protocols (and many others) allow bi-directional communication where a connection is consistently constant between server and client.
To enhance these protocols, Microsoft ASP.NET developed SignalR, a software library that utilizes traditional HTTP connections that allow realtime connectivity between server and clients. Microsoft developed an API that manages the connectivity between clients and servers automatically. It supports both server push and broadcasting functionality.
The division of server and client connectivity is managed through a protocol where:
- A client is defined as any connected device, a desktop computer, a smartphone, a smart TV, etc. By using HTTP, SignalR connects server and clients through what is known as an open-connection that keeps connectivity open and allows bi-directional communication.
- The only time that the connectivity is terminated is when the client physically terminates the connectivity or if they lose online connectivity.
SignalR defaults to WebSockets and utilizes server-side events and HTTP long-polling as a fallback.
With these capabilities, SignalR is ideal for developing applications such as:
- Chat applications
- Collaborative apps, like multi-user whiteboards or project management tools
- Online gaming
- Automatic updating of applications, like dashboards or realtime maps
- Notifications and alerts