ナビゲーションをスキップする

Azure SignalR Service, a fully-managed service to add real-time functionality

5月 7, 2018 に投稿済み

Principal Software Architect, Azure

Real-time technologies have become integral to many of our favorite apps including Microsoft Team’s group chat and Office 365’s co-authoring feature. Users expect to instantly respond to information as it changes in real-time. To support this, business leaders are demanding applications that facilitate real-time interactions with end customers. With about 3 million downloads to date, SignalR is a popular ASP.NET library that makes it incredibly simple to add real-time functionality to web applications.

Today, we are excited to announce the public preview of the Azure SignalR Service. This fully-managed service allows you to use ASP.NET Core SignalR to build real-time experiences such as chat, stock tickers, live dashboards, and more, all without worrying about capacity provisioning, scaling, or persistent connections.

Fully managed service

Real-time scenarios often come with high-frequency data flows and large quantities of concurrent connections between the client and server. They require non-trivial infrastructure setup to get the functionality up and running at scale. For example, you will need to set up a server farm with sticky sessions and a backplane like Redis to make sure messages get published to the right subscribers. Doing this at scale is extremely difficult and usually requires application specific logic at various network layers.

The Azure SignalR Service handles those issues, so you can focus on the application logic that delivers real-time connected experiences. You can scale real-time functionality dynamically while paying only for what you use. The service also inherits SignalR’s capabilities for persistent connections over various transports. If a WebSocket connection cannot be established, the SignalR client will fall back to either Server-Sent Events or long polling. It provides a built-in monitoring dashboard where you can get performance analytics such as number of connections, total messages transported, and processing speed.

Native SignalR development support

The Azure SignalR Service works seamlessly with ASP.NET Core SignalR which is now supported on the high-performance, cross-platform .NET Core runtime. With the rc1 release of ASP.NET Core SignalR, using the Azure SignalR Service in your application requires just a few changes. For example, if you have an existing SignalR-based web application, you can add a reference to the Azure SignalR Service SDK, configure a connection string, wire up services with services.AddSignalR().AddAzureSignalR() and app.UseAzureSignalR. Your application will then start using the service.

Code

The Azure SignalR Service runs without modification to existing ASP.NET Core SignalR clients. On the client, TypeScript/Javascript, and .NET languages are supported. In addition, the service exposes a REST API that can be used to publish real time messages to connected clients. As we march towards general availability, we are looking to add language SDKs for Java, Node.js, Python, C++, and more to bring the Azure SignalR Service and native SignalR development to more developers.

New possibilities

The Azure SignalR Service can be easily integrated with other Azure services, opening up other possible scenarios. For example, an Azure Function can use the REST API to push notifications into the Azure SignalR Service, which then pushes data to connected clients in real time. Used together with IoT Hub, the Azure SignalR Service can enable real time sensor data to be transmitted to connected clients to support real time monitoring scenarios.

Get started today with a free Azure account and try out our quick start. We have also prepared a few code samples to provide inspiration. You can share feedback or exchange ideas through the forum. We can’t wait to see what you will build with Azure SignalR Service.