4

我使用 SignalR 和 Asp.net MVC 创建了聊天应用程序。如果用户空闲了一段时间,他没有收到来自服务器的任何消息。

SignalR 持久连接是否有超时?

如果是,我该如何修改或重新激活我的连接?

4

2 回答 2

9

现在已在 Wiki 上更新https://github.com/SignalR/SignalR/wiki/Configuring-SignalR

代码

using System;
using SignalR;

namespace WebApplication1
{
    public class Global : System.Web.HttpApplication
    {
        void Application_Start(object sender, EventArgs e)
        {
            // Make connections wait 50s maximum for any response. After
            // 50s are up, trigger a timeout command and make the client reconnect.
            GlobalHost.Configuration.ConnectionTimeout = TimeSpan.FromSeconds(50);
        }
    }
}
于 2012-07-24T13:53:11.253 回答
6

对于任何连接,SignalR 的默认超时为 110 秒。它将自动重新连接,您不应错过任何消息。听起来你还有其他问题。如果您想像这样调整 0.4 中的超时时间(假设为 asp.net):

// Make idle connections reconnect every 60 seconds
AspNetHost.DependencyResolver.Resolve<IConfigurtionManager>().ReconnectTimeout = TimeSpan.FromSeconds(60);

确保使用 SignalR.Infrastructure 添加以获取 Resolve 扩展方法(我们将在下一版本中修复此问题)。

于 2012-04-12T17:57:14.000 回答