我在SignalR中使用长轮询。我发现用户会话结束(ASP.NET Session_End正在被调用)就在基于singalr的网页发出/signar/ping请求(as shown in this screenshot)之后。我浏览了http://www.asp.net/signalr/overview/signalr-20/hubs-api/handling-connection-lifetime-events,但没有找到以下问题的明确答案。
发布于 2014-09-03 00:49:29
/signalr/ping请求的全部目的是使ASP.NET会话保持活动状态。通过使请求间隔比会话超时更短,会话不应过期,因为服务器应该对每个请求重置超时。
对于长轮询传输,这可能是不必要的,因为在默认配置的情况下,SignalR将强制至少每110秒进行一次新的长轮询。即使如此,无论使用什么传输,SignalR默认每5分钟都会发出ping请求。这5分钟间隔足够小,足以处理ASP.NET默认的20分钟会话超时。
您可以在调用$.connection.hub.start时将5分钟ping间隔更改为自定义值,如下所示:
// Configure SignalR to ping the server every minute
$.connection.hub.start({ pingInterval: 60000 })//...默认的pingInterval是300000毫秒(5分钟)。可以通过将pingInterval设置为null来禁用ping。
https://stackoverflow.com/questions/25597468
复制相似问题