加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-30 22:41:46 所属栏目:asp.Net 来源:互联网
导读:我用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-lif

我用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.

(编辑:商洛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读