私は最新の SignalR (v:1.1.1) を使用しており、Hub メソッドを 3 秒ごとに定期的に単純に呼び出そうとしています。ここで多くの質問を見て、その方法を複製しましたが、GetHubContext
メソッドがクラスの正しいインスタンスを返していないように見えるため、そのクラスのメソッドを呼び出すことができません。次の手順でケースを複製できます。
MyHub.cs:
public class MyHub : Hub
{
public void SendMessage(string message)
{
Clients.All.triggerMessage(message);
}
}
Global.asax:
Task.Factory.StartNew(() =>
{
while (true)
{
var myHub = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
myHub.Clients.All.SendMessage("Hello World");
System.Threading.Thread.Sleep(3000);
}
})
.ContinueWith(t => { throw new Exception("The task threw an exception", t.Exception); }, TaskContinuationOptions.OnlyOnFaulted);
これはいたってシンプルだと思います。これは正しい方法だと思いますが、デバッガーがSendMessage
メソッドにヒットすることはありません。非常に明白な何かが欠けていることを誰かが知っていますか? サーバーから SignalR クライアントへの呼び出しを 3 秒ごとにスケジュールしようとしています。