在工作中,我们有一个客户端 - 服务器系统,客户端通过HTTP向Web服务器提交请求。服务器端处理有时可能需要60秒以上,这是我们公司的IT人员设置的代理超时值,无法更改。有没有办法通过来自服务器或客户端的心跳消息使HTTP连接保持活动超过60秒(最好是任意长时间)?
我知道有HTTP 1.1持久连接,但这不是我想要的。
HTTP是否具有保持活动能力,还是必须通过某种套接字选项在TCP级别完成?
答案 0 :(得分:2)
This应该让你开始。
答案 1 :(得分:1)
假设您控制系统的两侧,您可以通过定期来回发送数据来伪造它以防止会话空闲 - 大多数浏览器只要数据移动就不会终止连接。
作为一般性建议,您最好重新设计系统,以便客户端提交作业请求,然后定期查询(通过Ajax)以查看是否已完成。 Ajax查询可能会延迟一段时间,服务器可以在其具有肯定状态时响应,也可以在超时时间接近流逝时响应。如果状态更新请求由于某种原因(时间错误或诸如此类)而超时,则客户端只需重新提交它而不会造成任何损害,并且从用户的角度来看没有明显的中断。
答案 2 :(得分:0)
让服务器在进行处理时发送一小撮无操作数据 - 如果结果是HTML,那么就像:
<!-- keepalive -->
应该每隔10秒发一次。