asp.net – 使用/ signalr / ping调用时使用长轮询

前端之家收集整理的这篇文章主要介绍了asp.net – 使用/ signalr / ping调用时使用长轮询前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我用SignalR长时间轮询.我发现在基于singalr的网页进行/ signar / ping请求( as shown in this screenshot)之后,用户会话结束(ASP.NET Session_End正在被调用).我经历了 http://www.asp.net/signalr/overview/signalr-20/hubs-api/handling-connection-lifetime-events,但无法明确答案.

>如何让一个信号客户端网页上的ASP.net用户会话活着?
> ping的实际目的是什么?
>这个/ ping呼叫的时间是否可配置?

解决方法

/ 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.

猜你在找的asp.Net相关文章