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