.NET Aspire 支援 AzureAzure SignalR Service
在本文中,您將瞭解如何使用 .NET Aspire 來表示 AzureAzure SignalR Service 資源。 示範如何撰寫 SignalR 應用程式已超出本文的範圍。 相反地,您會探索已撰寫的應用程式,以及其如何與 .NET.NET Aspire連線。 如同 Azure應用程式模型內的其他 .NET Aspire 資源,您可以使用 Azure Developer CLI (azd
) 輕鬆布建和部署。 如需詳細資訊,請參閱 將 .NET Aspire 專案部署到 Azure Container Apps 並使用 azd
(詳細指南)。
中樞主機
中樞主機專案是您用來托管 SignalR 中樞的專案,例如呼叫 AddSignalR() 和 MapHub 的專案。
安裝 NuGet 套件
您需要安裝 📦 Microsoft。Azure。SignalR NuGet 套件。
dotnet add package Microsoft.Azure.SignalR
如需詳細資訊,請參閱 dotnet add package 或 管理 .NET 應用程式中的套件相依性。
表達資源
無論您使用哪個項目來托管 Hub,您都會在其中連接 AzureAzure SignalR Service 資源。 下列範例示範如何使用鏈接到 AddNamedAzureSignalR
方法的 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();
呼叫 AddNamedAzureSignalR
會新增具有指定名稱的 AzureSignalR,連接字串將會從 ConnectionStrings_{name}
讀取,這些設定會從 Azure:SignalR:{name}
區段載入。
應用程式主機
在 應用程式主專案中,您可以使用 AzureSignalRResource
方法來表示 AddAzureSignalR
。 下列範例示範使用者專案如何參考資源,在此案例中為 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();
在上述程式代碼中:
-
builder
的執行環境已被檢查,以確認是否處於發佈模式。 - 當發佈時,會呼叫
AddAzureSignalR
方法來表示AzureSignalRResource
。 - 未發佈時,會呼叫
AddConnectionString
方法來將IResourceWithConnectionString
傳達給現有資源。 -
signalr
資源由Hub
主機項目參考,在這個例子中稱為apiService
。 -
apiService
項目資源被SignalR_Web
項目引用。