2015-07-06 3 views
0

Использование масштабирования SignalR, как я могу транслировать сообщение от клиента на все серверы, подключенные к моей объединительной панели? Я думал, что он должен работать по умолчанию, однако только один серверный хаб получает сообщение.SignalR scaleout client to server broadcast

Настройка: У меня есть 4 виртуальных машины за балансиром нагрузки, и я использую SignalR с объединительной панелью Redis. У меня есть следующий Hub:

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 на всех серверах?

ответ

0

Невозможно. Лучший способ - включить механизм синхронизации между серверами. Поскольку Redis используется в качестве объединительной платы, он также может использоваться в качестве такого механизма.

Смежные вопросы