Как использовать экземпляр концентратора SignalR за пределами hubpipleline
Я использую SignalR для передачи сообщений всем моим клиентам. Мне нужно запустить трансляцию за пределами моего класса концентратора, т. е. что-то вроде ниже:
var broadcast = new chatHub();
broadcast.Send("Admin","stop the chat");
Я получаю сообщение об ошибке:
использование экземпляра концентратора, не созданного 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.