Question

Je me demande s'il est possible de diffuser le résultat devar hub = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();À ma classe ChatHub actuelle.Parce que GlobalHost.ConnectionManager.GetHubContext<ChatHub>() as ChatHub échoue

Sur ma classe ChatHub, j'ai une méthode UpdateTime() :

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

Et je veux l'appeler depuis mon autre classe.Comme je ne peux pas diffuser sur ChatHub et appeler SendUpdate, je dois y aller :

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

Mais si je choisis cette voie, la méthode SendTimeUpdate n'est pas ajoutée dans le script proxy /signalr/hubs

Existe-t-il une solution à ce problème ?Je souhaite obtenir l'instance Hub typée et ne pas appeler des éléments directement sur la propriété Clients de IHubContext.

Était-ce utile?

La solution

Non, vous ne pouvez pas diffuser le résultat de ....GetHubContext<.... à votre classe hub.Désolé :(.

L'approche GetHubContext renvoie un IHubContext quand un Hub n'est qu'un IHub.

Si vous souhaitez centraliser la logique, créez simplement une méthode que vous pouvez appeler depuis votre hub et depuis votre service externe.

Autres conseils

Votre classe ne pourrait-elle pas simplement créer une connexion à votre hub et appeler la méthode de cette façon ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top