¿Hay una buena manera de llamar a los métodos en SignalR hub desde un controlador?Obtención del concentrador actual en SignalR
Ahora mismo tengo unas pocas cosas:
public class StatsHub : Hub
{
private static readonly Lazy<StatsHub> instance = new Lazy<StatsHub>(() => new StatsHub());
public static StatsHub Instance { get { return instance.Value; } }
public StatsHub()
{
if (this.Clients == null)
{
var hubContext = SignalR.GlobalHost.ConnectionManager.GetHubContext<StatsHub>();
this.Clients = hubContext.Clients;
this.Groups = hubContext.Groups;
}
}
// methods here...
}
por lo que en mis acciones del controlador que se acaba de decir, por ejemplo
StatsHub.Instance.SendMessage("blah");
y es casi bueno, excepto que hubContext no tiene llamadas o Propiedades de contexto de Hub - que son agradables de tener.
Con suerte, ¿hay una mejor manera de hacer esto?
Esto no funciona más (en SignalR 2?). Ver http://stackoverflow.com/questions/17896739/use-hub-methods-from-controller. –
'DefaultHubManager' existe en SignalR 2.x sin embargo' hub.Context' es nulo, por lo que todas las operaciones fallan. – Dai
esto funciona en signalR 2.0 pero obtengo una excepción No se admite el uso de una instancia de Hub no creada por HubPipeline – GreyCloud