我有一个服务结构集群,其中包含带有signalR和可靠的actor设置的Web API.
我还有一个单独的MVC应用程序,它可以访问Web API.
我可以很好地使用MVC应用程序连接到signalR,并且一切正常.但是当我使用可靠的actor点击API时,它应该触发一个signalR广播到MVC应用程序所连接的组,我的MVC应用程序上没有任何内容.我知道它正在点击API,因为我记录它是确定的.
我已将负载均衡器设置为会话持久性到客户端IP.我怀疑signalR集线器可能不是同一个“集线器”或它在另一个节点上?有什么方法可以强迫它全部在同一个上面这样沟通吗?我忘了什么吗?如果我需要提供更多信息,请与我们联系.
最佳答案 我找到的答案是
SignalR Scaleout with Redis
基本上,这使用redis在服务结构中的所有节点之间共享signalR消息.
只需设置Redis,引用Microsoft.AspNet.SignalR.Redis并将其添加到您的启动:
GlobalHost.DependencyResolver.UseRedis(new RedisScaleoutConfiguration(redisConnectionString, "SignalR"));