问题描述
我们正在评估Azure SignalR服务,以潜在地替换我们当前的本地SignalR服务。我们正在使用.Net Core 2.2.402
我们尝试了以下操作:
services.AddSignalR();
services.AddSignalR().AddAzureSignalR(Configuration["Azure-SignalR:Connection-String"]);
并定义了路线和枢纽,如下所示:
app.UseAzureSignalR(route =>
{
route.MapHub<QueueHub>("/queue");
});
app.UseSignalR(route =>
{
route.MapHub<MessagesHub>("/message");
});
理想情况下,我们希望在同一个Web App中使用两者,但它似乎仅适用于其中一个。
解决方法
使用Azure SignalR
时,当客户端启动与服务器的连接时,您的.NET CORE
应用会将连接重定向到Azure,因此使用Azure SignalR
处理该连接,您只需提供逻辑中心本身。当您执行services.AddSignalR().AddAzureSignalR(...)
时,似乎只有信号R的第一个注册被第二条语句覆盖,这可能是您不能同时使用两者的原因。