【发布时间】:2021-06-14 16:43:03
【问题描述】:
我知道这个问题听起来很奇怪,但最近的测试让我怀疑我的 SignalR 实现。
我的启动类中有以下内容(省略了其他设置以使事情尽可能简单):
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR().AddAzureSignalR();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<BearHub>("/bear");
});
}
我的 Azure 帐户中有一个付费的 SignalR 订阅,当我使用 .AddAzureSignalR() 部分时,它会从我的应用设置文件中读取。它工作正常。
后来,我们需要添加一些集成测试。出于某种原因,经过多次尝试,我们发现我们的 in-memory SignalR 测试类在我们删除 AddAzureSignalR() 部分后可以正常工作! 这让我记得,在 Azure 成为许多公司的选择之前,我早就看过 SignalR 的示例。这意味着:公司只是在其正常的应用服务中使用 SignalR……或者我也是这样。
因此,我不确定在使用 AzureSignalR 而不是仅具有 SignalR 功能的应用服务时要添加什么。我去了Azure SignalR site,它声称有一些不清楚的地方:
您不必仅仅因为解决方案中需要实时功能就配置和维护服务器。 SignalR 服务是完全托管的,可以轻松地将实时通信功能添加到您的应用程序中。无需再担心托管、可扩展性、负载平衡等细节!
我不需要使用应用服务来维护服务器。我不需要担心托管、可扩展性和平衡。 平衡部分可能是这里的关键,因为它可以以比应用服务更好的方式自动管理。但其他点似乎只是宣传
从 Azure 提供的一切中受益!轻松与 Azure Functions、Azure Active Directory、Azure Storage、Azure App Service、Azure Analytics、Power BI、IoT、认知服务、机器学习等服务集成。
仅 SignalR 和应用服务就是如此。如果我删除 AddAzureSignalR() 部分,它不会改变。
我不确定我们是否为不需要的东西付费(即使它根本不贵)
【问题讨论】:
标签: azure signalr azure-signalr