CPA*_*CPA 5 c# azure websocket signalr azure-service-fabric
是否可以将signalR与Microsoft提供的Service Fabric一起使用?我正在尝试通过signalR/websocket连接将UWP应用程序和angularJS应用程序连接到Azure群集中托管的无状态可靠服务.但两者都无法打开这样的联系.在我的本地机器上一切正常.
使用带有Service Fabric的signalR/websockets有什么特别的考虑吗?有什么例子吗?
您需要为signalR启用跨域设置以从其他应用程序调用它.
appBuilder.Map("/signalr", map =>
{
map.UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration()
{
EnableJSONP = true,
EnableDetailedErrors = true,
EnableJavaScriptProxies = true
};
map.RunSignalR(hubConfiguration);
});
Run Code Online (Sandbox Code Playgroud)
这段代码可以在我们为SignalR安装Nuget包之后得到的readme.txt文件中找到.对于跨域功能,您还需要安装Cores nuget包.
部署此应用程序后,您可以看到对signalR的某些调用失败,而有些调用成功.默认情况下,Reliable无状态服务中的实例计数为-1.因此,将为该服务创建多个实例.
从signaleR Connection.Start()方法中将调用三个SingalR API.这些调用应该在同一个会话中进行,以便正常工作.当我们在具有多个实例的Service Fabric中调用这三个API时,可能会在不同的节点中处理该调用,从而导致不同的会话导致singalR连接失败.
一种解决方案是使实例计数为无状态服务结构应用程序1.我不认为这是一个优雅的解决方案.