Есть ли хороший способ вызова методов в концентраторе SignalR с контроллера?
Сейчас у меня есть это:
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...
}
поэтому в моих действиях контроллера я могу просто сказать, например
StatsHub.Instance.SendMessage("blah");
и это почти хорошо, за исключением того, что hubContext не имеет свойств Caller или Context Hub - что приятно иметь.
Надеюсь, есть лучший способ сделать это?