We recently released the first preview of the upcoming 2.4.0 release of ASP.NET SignalR. As we mentioned in our previous blog post on the future of ASP.NET SignalR we are releasing a new minor update to ASP.NET SignalR (the version of SignalR for System.Web and/or OWIN-based applications) that includes, support for the Azure SignalR Service, as well as some bug fixes and minor features.
We recommend you try upgrading to the preview even if you’re not interested in adopting the Azure SignalR Service at this time. Your feedback is critical to making sure we produce a stable and compatible update! You can find details about the release on the releases page of the ASP.NET SignalR GitHub repository.
Azure SignalR Service support
The Azure SignalR Service is a fully-managed service that can handle all your real-time experiences and allow you to easily scale your real-time web application. The Azure SignalR Service takes the load off your application so that you don’t have to handle all the persistent connections directly in your application. Instead, clients are re-routed to the service, which takes the burden of those persistent connections so your app can scale based on the actual throughput you need.
Moving to the Azure SignalR Service provides major benefits to your application:
- Your app does not need a SignalR “backplane” (Redis, SQL Server, Azure Service Bus, etc.) anymore. You can completely remove this configuration from your application and scale without having to manage your backplane.
- SignalR traffic runs through the Azure SignalR Service, which takes the load off your app servers. The messages still flow to your app servers, but the persistent connections themselves are made to the service, which means you can scale based on the message throughput instead of having to scale based on the number of concurrent users.
- Since clients connect to the service, you no longer have to worry about concurrent connection limits on your server or in browsers.
Convert an ASP.NET SignalR app to use the Azure SignalR Service
Converting your existing ASP.NET SignalR app to use the Azure SignalR Service just takes a few steps and requires no changes to your client other than updating them to the latest version of ASP.NET SignalR.
Before you can convert to use the Azure SignalR Service, you need to update your SignalR Server and Client to the latest preview build of ASP.NET SignalR 2.4.0 on NuGet.org (the latest build at the time of publishing is
2.4.0-preview1-20180920-03 but we’ll be shipping more previews so you should make sure you use the latest prerelease build).
After updating to SignalR 2.4.0, install the
Microsoft.Azure.SignalR.AspNet NuGet package and change your
app.MapAzureSignalR() and you’re using the Azure SignalR service. You just need to provision an Azure SignalR instance and provide the connection string in your
Web.config file and you’re good to go!
For a detailed guide, see the aspnet-samples/ChatRoom Sample in the AzureSignalR-samples GitHub repo. The sample walks through converting an existing ASP.NET SignalR app (the aspnet-samples/ChatRoomLocal Sample) to use the Azure SignalR Service.
- The JSONP protocol is not supported in Azure SignalR. Your browser clients must run on browsers that support Cross-Origin Resource Sharing in order to use Azure SignalR.
- The Azure SignalR Service does not support Persistent Connections at this time.
- The Azure SignalR SDK requires .NET Framework 4.6.1 or higher on the server.
We hope you’ll try out ASP.NET SignalR 2.4.0 Preview 1 and give us feedback! Even if you aren’t interested in migrating to Azure SignalR, there are a few bug fixes that are worth getting, and we’d appreciate it if you could try updating and let us know if you encounter any issues!
As always, if you have issues, bugs or feature requests, please file them on GitHub. If you’re having an issue with the Azure SignalR SDK specifically, file it on the Azure SignalR SDK Repository. If you’re having an issue with SignalR on-premise, file it on the SignalR Repository. If you’re not sure where your issue should go, that’s OK, just file it in either one and we’ll figure out where it belongs :).
Also, if you’re interested in migrating your ASP.NET SignalR application to the Azure SignalR Service, the team would love to hear from you, please let us know at
[email protected] so we can learn more about your scenario!