By Fiodar Sazanavets
Are you a web developer or do you write Internet of things (IoT) software? If so, you would know that many web and IoT development projects these days require the ability to establish a persistent connection between a client and a server without having to keep sending repeated requests from the client. For example, a user of a live chat would want to know in real time that they have received a new message. Or an IoT device may need to be sent a command in real time.
As you may also know, such functionality may be hard to implement. However, if you can build your server-side application on ASP.NET Core, there is a way to make this whole process easy. There is a library called SignalR, which is included in ASP.NET Core.
SignalR doesn’t only enable you to achieve real-time two-way communication between applications. It also substantially simplifies the process of enabling all of this in the code. Under the hood, it uses various two-way communication protocols, such as WebSocket. However, it abstracts away all the implementation complexity of these protocols. To the developer, working with this library will mostly consists of writing simple and easily readable statements.
In this book, we will cover everything you would need to know about using SignalR on .NET 6, so you will see how to integrate it with the the latest features on ASP.NET Core 6 and C# 10. We will cover much more than you can find in the official documentation of the library. For example, you will learn how to connect a plain WebSocket client to it, which may help you to write a client in a language that isn’t officially supported. Likewise, we will cover many concepts that aren’t directly related to SignalR, but are important to its production-ready implementation. These would include single sign-on, certificate authorization, logging, metrics and scaling out. By the end of this book, you would be able to identify the situations where SignalR is the best tool for the job and you would be fully able to implement it.
Table of content
- Introduction to SignalR
- Setting up your project
- In-browser SignalR clients
- External SignalR clients
- Sending messages to individual clients or groups of clients
- Streaming in SignalR
- Advanced SignalR configuration
- Securing your SignalR applications
- Scaling out SignalR application
- Introducing Azure SignalR Service