我使用SignalR和Asp.net MVC创建了聊天应用程序。如果用户有空闲时间,他没有收到来自服务器的任何消息。
SignalR持久连接是否有超时?
如果是,我该如何修改或重新激活我的连接?
答案 0 :(得分:9)
现已在Wiki {{3p>上更新
<强>代码强>
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);
}
}
}
答案 1 :(得分: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扩展方法(我们将在下一版本中修复此问题)。