如何在信号器集线器客户端上获得超时回调?

时间:2013-02-15 20:35:09

标签: signalr signalr-hub

我想在集线器调用上处理超时回调,以确保服务器收到我的“消息”,我该怎么做?

我看了一下signalR wiki,用Google搜索但没有找到任何内容!

这就是我认为界面的方式:

  var hubcon = new HubConnection("myurl", useDefaultUrl: false);
   IHubProxy chatHub = hubcon.CreateHubProxy("chatHub");
   chatHub.On("timeout", data =>
                {
                    //do something
                });

   hubcon.Start().Wait(1000);

   chatHub.Invoke("EnviarMensagem", new { nome = nome, mensagem = mensagem }).Wait();

   hubcon.Stop();

1 个答案:

答案 0 :(得分:1)

由于您无论如何都在调用Wait,您可以设置超时并查看返回值以查看服务器是否已完成处理您的调用:

   if (!chatHub.Invoke("EnviarMensagem", ...).Wait(10000))
   {
       // The server did not respond to the invocation within 10 seconds
   }

http://msdn.microsoft.com/en-us/library/dd270644.aspx