.NET Aspire stöd för AzureAzure SignalR Service
I den här artikeln lär du dig hur du använder .NET Aspire för att uttrycka en AzureAzure SignalR Service resurs. Att visa hur du skriver en SignalR app ligger utanför omfånget för den här artikeln. I stället utforskar du en app som redan har skrivits och hur den är kopplad till .NET.NET Aspire. Precis som andra Azure resurser i .NET Aspireappmodellendrar du nytta av enkel etablering och distribution med Azure Developer CLI (azd
). För mer information, se distribuera ett .NET Aspire-projekt till Azure Container Apps med hjälp av azd
(utförlig guide).
Hubbvärd
Hubbvärdprojektet är där du är värd för din SignalR hubb, projektet som anropar AddSignalR() och MapHub till exempel.
Installera NuGet-paketet
Du måste installera 📦 Microsoft.Azure.SignalR NuGet-paket.
dotnet add package Microsoft.Azure.SignalR
Mer information finns i dotnet add package eller Hantera paketberoenden i .NET applikationer.
Uttrycka resursen
Oavsett vilket projekt du använder för att hosta din Hub kopplar du upp din AzureAzure SignalR Service-resurs. I följande exempel visas hur du använder AddNamedAzureSignalR
-tilläggsmetoden som är länkad till metoden 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();
Genom att anropa AddNamedAzureSignalR
läggs AzureSignalR till med det angivna namnet. Anslutningssträngen hämtas från ConnectionStrings_{name}
och inställningarna läses in från avsnittet Azure:SignalR:{name}
.
Appvärd
I appvärdprojektetuttrycker du en AzureSignalRResource
med metoden AddAzureSignalR
. I följande exempel visas hur resursen refereras av det förbrukande projektet, i det här fallet Hub
värdprojektet:
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();
I föregående kod:
-
builder
får sin körningskontext kontrollerad för att se om den är i publiceringsläge. - När du publicerar anropas metoden
AddAzureSignalR
för att representeraAzureSignalRResource
. - När du inte publicerar anropas metoden
AddConnectionString
för att uttrycka enIResourceWithConnectionString
till en befintlig resurs. - Resursen
signalr
refereras av värdprojektetHub
, i det här fallet känt somapiService
. -
apiService
projektresursen refereras till avSignalR_Web
projektet.
Se även
.NET Aspire