Как использовать экземпляр концентратора SignalR вне hubpipleline
Я использую SignalR для передачи сообщений всем моим клиентам. Мне нужно вызвать трансляцию вне моего класса-концентратора, например, что-то вроде ниже:
var broadcast = new chatHub();
broadcast.Send("Admin","stop the chat");
Я получаю сообщение об ошибке как:
Использование экземпляра Hub, не созданного HubPipeline, не поддерживается.
Ответы
Ответ 1
Вам нужно использовать GetHubContext
:
var context = GlobalHost.ConnectionManager.GetHubContext<chatHub>();
context.Clients.All.Send("Admin", "stop the chat");
Это описано более подробно на http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server#callfromoutsidehub.