Signalr는 IHubContext를 실제 허브로 캐스팅합니다.
-
02-01-2020 - |
문제
결과를 캐스팅할 수 있는지 궁금합니다.var hub = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
내 실제 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에 추가되지 않습니다.
이 문제에 대한 해결책이 있습니까?IHubContext의 Clients 속성에서 직접 항목을 호출하지 않고 형식화된 Hub 인스턴스를 가져오고 싶습니다.
해결책
아니요. 결과를 캐스팅할 수 없습니다. ....GetHubContext<....
허브 클래스에.죄송합니다 :(.
GetHubContext 접근 방식은 IHubContext
허브가 IHub
.
논리를 중앙 집중화하려면 허브와 외부 서비스에서 호출할 수 있는 메서드를 만드세요.
다른 팁
수업에서 허브에 대한 연결을 만들고 그런 식으로 메서드를 호출할 수는 없나요?
제휴하지 않습니다 StackOverflow