我正在使用最新的 SignalR (v:1.1.1),并尝试每隔 3 秒定期简单地调用 Hub 方法。我在这里看到了很多问题并复制了方法,但是GetHubContext
方法似乎没有返回该类的正确实例,所以我不能调用该类的方法。您可以通过以下步骤复制案例:
MyHub.cs:
public class MyHub : Hub
{
public void SendMessage(string message)
{
Clients.All.triggerMessage(message);
}
}
全球.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
方法。有谁知道我错过了一些非常明显的东西?我只是想安排每 3 秒从服务器调用 SignalR 客户端。