我想在Web服务中实现长轮询。我可以在客户端设置足够长的超时时间。 我是否可以提示中间网络组件以保持响应 打开?我的意思是NAT,病毒扫描程序,反向代理或可能位于客户端之间的SSH隧道而服务器和我不在我的掌控之中。
下载可能持续数小时,但空闲连接可能在不到一分钟内终止。这是我想要防止的。我是否可以通知中间网络空闲连接是我想要的,而不是因为服务器已断开连接?
如果是这样,怎么样?我现在已经搜索了大约四个小时,但我没有找到相关信息。
200 OK
,也许是一些标题,然后什么都没有?102 Processing
而不是200 OK
,那么一切都很好吗?0x16
(同步空闲)字节吗?如果是这样,在初始HTTP状态代码之前或之后,在标题之前或之后?他们是否已将其转移到已传输的文件中,并可能会破坏它?Web服务/服务器使用Boost使用C ++,返回的内容文件采用Turtle语法。
答案 0 :(得分:1)
您不能强制代理延长其空闲超时,至少在没有管理员权限的情况下也是如此。
好消息是,您可以设计长轮询解决方案,使其能够从突然关闭的连接中恢复。
其中一种设计如下:
当使用cookie传达客户端看到的最后一个事件的序列号时,客户端实现变得非常简单。基本上你只需在客户端启用cookie即可。