[英]SignalR scaleout client to server broadcast
使用SignalR橫向擴展,如何將消息從客戶端廣播到背板上連接的所有服務器? 我認為默認情況下它應該可以工作,但是只有一台服務器的集線器正在接收該消息。
設置:我在負載均衡器后面有4個虛擬機,並且正在使用帶Redis背板的SignalR。 我有以下集線器:
public class ProgressHub : Hub
{
public void StartProcessing(string clientId)
{
// ...
}
}
在客戶端,我通過以下方式調用此方法:
$.connection.hub.start().done(function() {
proghub.server.startProcessing(me.clientId);
});
我已經在消息總線上啟用了跟蹤,並且在所有服務器上都收到了消息:
SignalR.ScaleoutMessageBus Information: 0 : OnReceived(0, 54, 1)
但是,僅在一台服務器上調用Hub方法。 如何使此調用在所有服務器上執行StartProcessing方法?
這不可能。 最好的方法是在服務器之間啟用某種同步機制。 由於Redis用作背板,因此也可以用作這種機制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.