Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Microsoft Announces Preview of Azure SignalR Service

Microsoft Announces Preview of Azure SignalR Service

This item in japanese

Microsoft recently announced a public preview of the Azure SignalR Service during their annual Build developer conference in Seattle. SignalR supports the implementation of real-time web functionality by enabling bi-directional communication between server and client. SignalR has been available for download as a separate ASP.NET library but this is the first time it has been available as a fully-managed service.

SignalR was developed over five years ago as a library and can be used to deliver real-time experiences for web applications, such as live dashboards. It achieves this by pushing content from server-side code to connected clients in real-time. The functionality is provided through WebSockets but has fall-back to server-side events, forever frames and long polling when WebSockets are not supported.

When hosting the SignalR components directly, the user is responsible for security, encryption, capacity and scaling. Scaling out of a service across multiple hosted nodes is achieved with a static backplane that manages connections between each service node. Self-hosted SignalR requires the creation and management of a backplane to provide this scale out facility, with the library supporting Azure Service Bus, Redis Cache, or SQL Server.

The Azure SignalR Service removes some of the complexity around self-hosting instances by providing scale up and scale out capabilities directly without the need to provide your own backplane. Additionally, security is managed by the service using shared access keys.

Instances of the service can be created through the Azure Portal in a similar way to most Azure services. The instance name needs to be globally unique, and you need to choose an Azure Subscription and Resource Group to store the service, a pricing tier and a region location.

The Azure SignalR Service is currently in public preview in East US, Southeast Asia, West Europe, West US and West US 2 regions and has two tiers.

When choosing the Basic tier, you can choose up to 10 scale units which determines the volume of messages and connections an instance can support. Auto-scale is not supported in the public preview.

SignalR is one of many components that support real-time web application development, including and Firehose is supported directly in other popular JavaScript frameworks such as Backbone.js and Ember.js, whilst also using RESTful design principles to work with any client capable of calling HTTP endpoints. Socket.IO has been used in many applications that require real-time interactions such as Trello, Zendesk and Microsoft Office.

The Azure SignalR Service currently supports ASP.NET Core with client support provided for JavaScript and .NET. The service exposes an HTTP endpoint allowing other clients capable of calling the endpoint to interact directly with the service.

David Fowler, principal software architect, Azure at Microsoft, and one of the original architects of the SignalR library, describes in the announcement how to convert a current SignalR project to use the new service:

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.

The announcement goes on to say that as the service moves towards general availability, other language SDKs should become available.

The Basic tier of the service is currently priced at $0.0335 per unit per hour, although the current pricing page uses different terms for each tier level, with Free in portal being called Dev/Test and Basic being called Standard.

Rate this Article