コントローラーから 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 が Hub の Caller プロパティまたは Context プロパティを持たないことを除いて、ほとんど問題ありません。
うまくいけば、これを行うためのより良い方法がありますか?