Sdílet prostřednictvím


podpora .NET Aspire pro AzureAzure SignalR Service

V tomto článku se dozvíte, jak pomocí .NET Aspire vyjádřit prostředek AzureAzure SignalR Service. Předvedení, jak napsat SignalR aplikaci, je nad rámec tohoto článku. Místo toho prozkoumáte aplikaci, která už je napsaná a jak je připojená pomocí .NET.NET Aspire. Stejně jako u jiných prostředků vmodelu aplikace můžete využívat jednoduché zřizování a nasazení pomocí (). Další informace najdete v tématu Nasazení projektu .NET Aspire pro Azure Container Apps pomocí azd (podrobný průvodce).

Hostitel uzlu

Projekt ústředního hostitele je místo, kde hostujete své centrum SignalR, například projekt, který volá AddSignalR() a MapHub.

Instalace balíčku NuGet

Musíte nainstalovat 📦 MicrosoftAzureSignalR balíček NuGet.

dotnet add package Microsoft.Azure.SignalR

Další informace najdete v tématu dotnet add package nebo Spravovat závislosti balíčků v aplikacích .NET.

Vyjádřit zdroj

Bez ohledu na to, jaký projekt používáte k hostování Hub, tam připojíte zdroj AzureAzure SignalR Service. Následující příklad ukazuje, jak použít rozšiřující metodu AddNamedAzureSignalR, která je zřetězená na metodu 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();

Volání AddNamedAzureSignalR přidá AzureSignalR se zadaným názvem. Připojovací řetězec bude načten z ConnectionStrings_{name}, nastavení budou načtena z oddílu Azure:SignalR:{name}.

Hostitel aplikací

V projektu hostitele aplikacevyjadřujete AzureSignalRResource metodou AddAzureSignalR. Následující příklad ukazuje, jak se na zdroj odkazuje spotřebující projekt, v tomto případě Hub hostitelský projekt:

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();

V předchozím kódu:

  • builder má zkontrolovaný kontext spuštění, aby se zjistilo, jestli je v publikačním režimu.
  • Při publikování se volá metoda AddAzureSignalR k vyjádření AzureSignalRResource.
  • Pokud nepublikujete, volá se metoda AddConnectionString k vyjádření IResourceWithConnectionString k existujícímu prostředku.
  • Na signalr zdroj odkazuje projekt hostitele Hub, v tomto případě označovaný jako apiService.
  • Projekt apiService odkazuje na zdroj projektu SignalR_Web.

Viz také