Partager via


Prise en charge de .NET Aspire pour AzureAzure SignalR Service

Dans cet article, vous allez apprendre à utiliser .NET Aspire pour exprimer une ressource AzureAzure SignalR Service. Montrer comment écrire une application SignalR est au-delà de l’étendue de cet article. Au lieu de cela, vous explorez une application qui a déjà été écrite et comment elle est connectée avec .NET.NET Aspire. Comme d’autres ressources Azure au sein du modèle d’application .NET Aspire, vous bénéficiez d’un approvisionnement et d’un déploiement simples avec le Azure Developer CLI (azd). Pour plus d’informations, consultez Déployer un projet de .NET Aspire sur Azure Container Apps à l’aide du azd (guide détaillé).

Hôte du hub

Le projet hub hôte est l’emplacement où vous hébergez votre hub SignalR ; c’est, par exemple, le projet qui appelle AddSignalR() et MapHub.

Installer le package NuGet

Vous devez installer le package NuGet 📦Azure.SignalR de Microsoft.

dotnet add package Microsoft.Azure.SignalR

Pour plus d'informations, consultez dotnet add package ou Gérer les dépendances des packages dans les applications .NET.

Exprimer la ressource

Quel que soit le projet que vous utilisez pour héberger votre Hub, vous allez configurer votre ressource AzureAzure SignalR Service. L’exemple suivant montre comment utiliser la méthode d’extension AddNamedAzureSignalR qui est chaînée sur la méthode AddSignalR :

var builder = WebApplication.CreateBuilder(args);

builder.AddServiceDefaults();

builder.Services.AddProblemDetails();

builder.Services.AddSignalR()
                .AddNamedAzureSignalR("signalr");

var app = builder.Build();

app.UseExceptionHandler();

app.MapHub<ChatHub>(HubEndpoints.ChatHub);

app.MapDefaultEndpoints();

app.Run();

L’appel AddNamedAzureSignalR ajoute AzureSignalR avec le nom spécifié, la chaîne de connexion sera récupérée à partir de ConnectionStrings_{name}, les paramètres sont chargés à partir de la section Azure:SignalR:{name}.

Hôte d’application

Dans le projet hôte d’application , vous exprimez une AzureSignalRResource avec la méthode AddAzureSignalR. L’exemple suivant montre comment la ressource est référencée par le projet consommateur, dans ce cas le projet hôte Hub :

var builder = DistributedApplication.CreateBuilder(args);

var signalr = builder.ExecutionContext.IsPublishMode
    ? builder.AddAzureSignalR("signalr")
    : builder.AddConnectionString("signalr");

var apiService = builder.AddProject<Projects.SignalR_ApiService>("apiservice")
                        .WithReference(signalr);
  
builder.AddProject<Projects.SignalR_Web>("webfrontend")
       .WithReference(apiService);

builder.Build().Run();

Dans le code précédent :

  • Le contexte d'exécution du builder est vérifié pour voir s'il est en mode publication.
  • Lors de la publication, la méthode AddAzureSignalR est appelée pour exprimer le AzureSignalRResource.
  • Lorsque vous ne publiez pas, la méthode AddConnectionString est appelée pour effectuer une IResourceWithConnectionString sur une ressource existante.
  • La ressource signalr est référencée par le projet hôte Hub, dans ce cas appelé apiService.
  • La ressource de projet apiService est référencée par le projet SignalR_Web.

Voir aussi