2016-09-19 104 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"));