Signalr приводит IHubContext к фактическому концентратору
мне интересно, можно ли привести результат
var hub = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
К моему настоящему классу Чатуба.
Потому что GlobalHost.ConnectionManager.GetHubContext<ChatHub>() as ChatHub
не
в моем классе ChatHub у меня есть метод UpdateTime ():
public void SendTimeUpdate(DateTime time, string auth)
{
Clients.All.UpdateTime(time, auth);
}
и я хочу позвонить из другого класса. Поскольку я не могу бросить ChatHub и вызвать SendUpdate, я должен пойти:
GlobalHost.ConnectionManager.GetHubContext<ChatHub>().Clients.All.UpdateTime(time, auth);
но если я пойду по этому пути, метод SendTimeUpdate не добавляется в прокси-скрипт/signalr / hubs
есть ли решение для эта проблема? Я хочу получить типизированный экземпляр концентратора и не вызывать материал непосредственно в свойстве Clients IHubContext.
2 ответов
нет, вы не можете привести результат ....GetHubContext<....
к вашему классу концентратора. Огорченный.(:
подход GetHubContext возвращает IHubContext
когда концентратор только IHub
.
Если вы хотите централизовать логику, просто сделайте метод, который вы можете вызвать из своего концентратора и из своей внешней службы.