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 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 hostiteleHub
, v tomto případě označovaný jakoapiService
. - Projekt
apiService
odkazuje na zdroj projektuSignalR_Web
.