To integrate Azure SignalR Service with an ASP.NET Core web application, follow these steps:

Prerequisites

  1. Azure Subscription: Ensure you have an Azure subscription. If not, create a free account.
  2. .NET Core SDK: Install the latest .NET Core SDK.
  3. IDE: You can use any code editor, such as Visual Studio or Visual Studio Code.

Step-by-Step Integration

  1. Create Azure SignalR Service
  • Sign in to the Azure portal.
  • Create a new SignalR Service instance:
    • Click on + Create a resource and search for SignalR Service.
    • Fill in the required details and create the resource.
  • After creation, navigate to the SignalR resource and copy the Connection string from the Keys section.
  1. Create an ASP.NET Core Web Application
  • Open your terminal or command prompt.
  • Create a new folder for your project and navigate into it.
  • Run the following command to create a new web application:

bash

dotnet new web

  1. Add Azure SignalR SDK
  • In your project folder, run the following command to add the Azure SignalR SDK:

bash

dotnet add package Microsoft.Azure.SignalR

  1. Configure SignalR in Startup
  • Open the Program.cs file and update it to include SignalR services. Here’s an example configuration:
var builder = WebApplication.CreateBuilder(args);




// Add SignalR services to the container

builder.Services.AddSignalR().AddAzureSignalR();




var app = builder.Build();




// Configure the HTTP request pipeline

app.UseDefaultFiles();

app.UseStaticFiles();

app.UseRouting();




// Map the SignalR hub

app.MapHub<ChatSampleHub>("/chat");




app.Run();
  1. Configure Connection String

You can configure the connection string in two ways:

  • Environment Variable: Set an environment variable named Azure:SignalR:ConnectionString with your connection string.
  • Directly in Code: Pass the connection string directly in the AddAzureSignalR() method:
builder.Services.AddSignalR().AddAzureSignalR(options =>

    options.ConnectionString = "<Your_Connection_String>");
  1. Create Hub Class
  • Create a new class for your SignalR hub:
public class ChatSampleHub : Hub

{

    public async Task SendMessage(string user, string message)

    {

        await Clients.All.SendAsync("ReceiveMessage", user, message);

    }

}
  1. Run Your Application
  • Start your application using:

bash

dotnet run

  • Your SignalR hub should now be accessible at the /chat endpoint, and you can connect clients to it for real-time communication.

This integration allows you to leverage Azure’s scalability and management features for real-time web applications using SignalR