Я использую последнюю версию SignalR (v: 1.1.1) и периодически пытаюсь просто вызывать метод Hub каждые 3 секунды. Я видел здесь много вопросов и продублировал способ, но метод 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
. Кто-нибудь знает, я пропустил что-то очень очевидное? Я просто пытаюсь запланировать вызов клиента SignalR с сервера каждые 3 секунды.