Azure / azure-signalr

Azure SignalR Service SDK for .NET
https://aka.ms/signalr-service
MIT License
427 stars 101 forks source link
asp-net aspnet-core azure azure-signalr dotnet long-polling net461 netstandard20 real-time server-sent-events signalr websockets

Azure SignalR Service SDK for .NET

Azure SignalR Service SDK for .NET helps you to instantly build Azure applications with real-time messaging functionality, taking advantage of scalable cloud computing resources.

This repository contains the open source subset of the .NET SDK.

Build Status

Windows Ubuntu OSX

Nuget Packages

Azure SignalR Service SDK is supporting ASP.NET Core 3.0 from version 1.1.0-*. Please find package information below.

Package Name | Description | Target Frameworks | Packages ---|---|---|--- Microsoft.Azure.SignalR.AspNet | The package to use when you are using **ASP.NET SignalR** | **.NETFramework 4.6.2** | [![NuGet](https://img.shields.io/nuget/v/Microsoft.Azure.SignalR.AspNet.svg?label=NuGet)](https://www.nuget.org/packages/Microsoft.Azure.SignalR.AspNet)
[![MyGet](https://img.shields.io/myget/azure-signalr-dev/vpre/Microsoft.Azure.SignalR.AspNet.svg?label=MyGet)](https://www.myget.org/feed/azure-signalr-dev/package/nuget/Microsoft.Azure.SignalR.AspNet) Microsoft.Azure.SignalR | The package to use when you are using **ASP.NET Core SignalR** | **.NET Standard 2.0**
**.NET 6.0**
**.NET 8.0** | [![Nuget](https://img.shields.io/nuget/v/Microsoft.Azure.SignalR.svg?label=NuGet)](https://www.nuget.org/packages/Microsoft.Azure.SignalR/)
[![MyGet](https://img.shields.io/myget/azure-signalr-dev/vpre/Microsoft.Azure.SignalR.svg?label=MyGet)](https://www.myget.org/feed/azure-signalr-dev/package/nuget/Microsoft.Azure.SignalR) Microsoft.Azure.SignalR.Management | You can use the package to manage **ASP.NET Core SignalR** clients through Azure SignalR Service directly | **.NET Standard 2.0**
**.NET 6.0**
**.NET 8.0** | [![NuGet](https://img.shields.io/nuget/v/Microsoft.Azure.SignalR.Management.svg?label=NuGet)](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Management)
[![MyGet](https://img.shields.io/myget/azure-signalr-dev/vpre/Microsoft.Azure.SignalR.Management.svg?label=MyGet)](https://www.myget.org/feed/azure-signalr-dev/package/nuget/Microsoft.Azure.SignalR.Management) | Microsoft.Azure.SignalR.Protocols | The package contains the data protocol between the SDK and the Azure SignalR Service | **.NET Standard 2.0** | [![NuGet](https://img.shields.io/nuget/v/Microsoft.Azure.SignalR.Protocols.svg?label=NuGet)](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Protocols)
[![MyGet](https://img.shields.io/myget/azure-signalr-dev/vpre/Microsoft.Azure.SignalR.Protocols.svg?label=MyGet)](https://www.myget.org/feed/azure-signalr-dev/package/nuget/Microsoft.Azure.SignalR.Protocols) | Microsoft.Azure.SignalR.Serverless.Protocols | .NET Standard SDK for Azure SignalR Service serverless protocol. | **.NET Standard 2.0** | [![NuGet](https://img.shields.io/nuget/v/Microsoft.Azure.SignalR.Serverless.Protocols.svg?label=NuGet)](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Serverless.Protocols)
[![MyGet](https://img.shields.io/myget/azure-signalr-dev/vpre/Microsoft.Azure.SignalR.Serverless.Protocols.svg?label=MyGet)](https://www.myget.org/feed/azure-signalr-dev/package/nuget/Microsoft.Azure.SignalR.Serverless.Protocols) | Microsoft.Azure.SignalR.Emulator | The emulator tool for serverless scenarios | **.NET 8.0** | [![NuGet](https://img.shields.io/nuget/v/Microsoft.Azure.SignalR.Emulator.svg?label=NuGet)](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Emulator)
[![MyGet](https://img.shields.io/myget/azure-signalr-dev/vpre/Microsoft.Azure.SignalR.Emulator.svg?label=MyGet)](https://www.myget.org/feed/azure-signalr-dev/package/nuget/Microsoft.Azure.SignalR.Emulator)

Getting Started

Azure SignalR Service is based on ASP.NET Core SignalR framework, and it supports both ASP.NET Core SignalR and ASP.NET SignalR applications. Both support are generally available. Please note that different frameworks require different Azure SignalR SDK, for ASP.NET Core SignalR, it is package Microsoft.Azure.SignalR to install, for ASP.NET SignalR, it is package Microsoft.Azure.SignalR.AspNet.

ASP.NET Core SignalR

Package Microsoft.Azure.SignalR is the one to use when you are using ASP.NET Core SignalR. If you are not familiar with ASP.NET Core SignalR yet, we recommend you to read ASP.NET Core SignalR's documentation first.

Follow the tutorial at here to get started with Azure SignalR Service.

More samples on how to use Azure SignalR Service can be found here.

Note

There're two versions of SignalR: ASP.NET SignalR and ASP.NET Core SignalR. The ASP.NET Core version is not a simple .NET Core port of the original SignalR, but a rewrite of the original version. As a result, ASP.NET Core SignalR is not backward compatible with ASP.NET SignalR (API interfaces and behaviors are different). If it is the first time you try SignalR, we recommend you to use the ASP.NET Core SignalR, it is simpler, more reliable, and easier to use.

ASP.NET SignalR

Note:

Please make sure ASP.NET SignalR client version is using 2.4.0 or above.

Package Microsoft.Azure.SignalR.AspNet is the one to use when you are using ASP.NET SignalR. If you are not familiar with ASP.NET SignalR yet, we recommend you to read ASP.NET SignalR's documentation first.

Samples on how to use Azure SignalR Service can be found here

Management

Note:

Management API only supports ASP.NET Core SignalR.

Package Microsoft.Azure.SignalR.Management is the one to use when you want to manage SignalR clients through Azure SignalR Service directly such as broadcast messages. This SDK can be but not limited to be used in serverless environments. You can use this SDK to manage SignalR clients connected to your Azure SignalR Service in any environment, such as in a console app, in an Azure function or in an App Server.

More details can be found here.

The sample on how to use Management SDK to redirect SignalR clients to Azure SignalR Service can be found here.

Next Steps

The following documents describe more details about Azure SignalR Service.

Contributions are highly welcome. Keep reading if you want to contribute to our repository.

Building from source

See Building Documents for more details.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Performance

See Performance for details.