2016-09-19 96 views
4

我有一个服务结构集群,具有带有signalR和可靠演员设置的Web API。具有SignalR的Azure服务结构WebAPI

我也有一个单独的MVC应用程序,击中的Web API。

我可以使用MVC应用程序连接到signalR就好了,一切正常。但是当我用可靠的演员击中API时,应该触发一个信号广播给MVC应用程序连接到的组,但是我的MVC应用程序没有出现任何信息。我知道它正在击中API,因为我已经记录了这一点。

我已将负载均衡器设置为会话持久性到客户端IP。我怀疑signalR集线器可能不是同一个“集线器”,或者它在另一个节点上?有什么办法可以强迫它全部在同一个地方,这样可以沟通吗?我忘了什么吗?请让我知道是否需要包含更多信息。

+1

它可以是一些流量去一个SignalR服务器,但客户端连接到其他的,他们没有看到的消息因为你没有任何背板,所以服务器没有互相交谈? – Pawel

回答

2

我找到了答案为SignalR Scaleout with Redis

这基本上使用Redis的跨所有节点共享服务织物signalR消息。

只需设置的Redis,参考Microsoft.AspNet.SignalR.Redis并添加到您的启动:

GlobalHost.DependencyResolver.UseRedis(new RedisScaleoutConfiguration(redisConnectionString, "SignalR"));