Pregunta

Me pregunto si es posible transmitir el resultado devar hub = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();A mi clase real de ChatHub.Porque GlobalHost.ConnectionManager.GetHubContext<ChatHub>() as ChatHub falla

En mi clase ChatHub tengo un método UpdateTime():

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

Y quiero llamarlo desde mi otra clase.Como no puedo transmitir a ChatHub e invocar SendUpdate, tengo que ir:

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

Pero si sigo este camino, el método SendTimeUpdate no se agrega en el script proxy /signalr/hubs

¿Hay una solución para este problema?Quiero obtener la instancia de Hub escrita y no llamar a cosas directamente en la propiedad Clientes de IHubContext.

¿Fue útil?

Solución

No, no puedes transmitir el resultado de ....GetHubContext<.... a su clase central.Lo siento :(.

El enfoque GetHubContext devuelve un IHubContext cuando un Hub es sólo un IHub.

Si desea centralizar la lógica, simplemente cree un método al que pueda llamar desde su centro y desde su servicio externo.

Otros consejos

¿No se pudo crear su clase una conexión a su centro y llamar al método de esa manera?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top