有没有从控制器调用 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 属性——这些属性很好。
希望有更好的方法来做到这一点?