首页 文章

保持活跃的长期HTTP会话(不是持久性HTTP)

提问于
浏览
3

在工作中,我们有一个客户端 - 服务器系统,客户端通过HTTP向Web服务器提交请求 . 服务器端处理有时可能需要60秒以上,这是我们公司的IT人员设置的代理超时值,无法更改 . 有没有办法通过来自服务器或客户端的心跳消息使HTTP连接保持活动超过60秒(最好是任意长时间)?

我知道有HTTP 1.1持久连接,但这不是我想要的 .

HTTP是否具有保持活动能力,还是必须通过某种套接字选项在TCP级别完成?

3 回答

  • 3

    This应该让你入门

  • 0

    让服务器在进行处理时发送一小撮无操作数据 - 如果结果是HTML,那么类似于:

    <!-- keepalive -->
    

    应该每隔10秒发一次 .

  • 1

    假设您控制系统的两侧,您可以通过定期来回发送数据来伪造它以防止会话空闲 - 大多数浏览器只要数据移动就不会终止连接 .

    但是,作为一般性建议,您最好重新设计系统,以便客户端提交作业请求,然后定期查询(通过Ajax)以查看是否已完成 . Ajax查询可能会延迟一段时间,服务器可以在其具有肯定状态时响应,也可以在超时时间接近流逝时响应 . 如果状态更新请求由于某种原因(定时错误或诸如此类)而超时,则客户端只需重新提交它而不会造成任何损害,并且从用户的角度来看没有明显的中断 .

相关问题