Pergunta

Gostaria de saber se é possível transmitir o resultado devar hub = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();Para minha aula real do ChatHub.Porque GlobalHost.ConnectionManager.GetHubContext<ChatHub>() as ChatHub falhar

Na minha classe ChatHub eu tenho um método UpdateTime():

public void SendTimeUpdate(DateTime time, string auth)
{
    Clients.All.UpdateTime(time, auth);
}

E quero ligar da minha outra turma.Como não consigo transmitir para o ChatHub e invocar o SendUpdate, preciso ir:

GlobalHost.ConnectionManager.GetHubContext<ChatHub>().Clients.All.UpdateTime(time, auth);

Mas se eu seguir esse caminho, o método SendTimeUpdate não será adicionado no script proxy /signalr/hubs

Existe uma solução para este problema?Quero obter a instância do Hub digitada e não chamar coisas diretamente na propriedade Clients do IHubContext.

Foi útil?

Solução

Não, você não pode lançar o resultado de ....GetHubContext<.... para sua classe de hub.Desculpe :(.

A abordagem GetHubContext retorna um IHubContext quando um Hub é apenas um IHub.

Se você quiser centralizar a lógica, basta criar um método que você possa chamar do seu hub e do seu serviço externo.

Outras dicas

Sua classe não poderia simplesmente criar uma conexão com seu hub e chamar o método dessa forma?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top