我对长轮询的理解是,向服务器发送请求,服务器需要一些时间将数据返回给我们,或者逐渐将数据发送回去。
我的Java Servlet应用程序(在Weblogic服务器中运行)遇到问题,客户端触发请求后,后端Servlet的处理时间大约为1分钟,当Servlet尝试发送回响应时,我遇到了“管道中断”的问题问题。
这个问题是由我的客户报告的,我无法在我的环境中重现它,实际上,我写了一个小的servlet来测试何时最终遇到读取超时问题。毫不奇怪,我的浏览器可以等待服务器返回响应超过5分钟。
我的客户遇到此类管道破裂问题的原因可能是什么?
我怎么可能解决呢?
根据http://support.microsoft.com/en-us/kb/813827,
Internet Explorer重用用于接收初始请求的相同TCP / IP套接字,直到套接字空闲一分钟。连接闲置一分钟后,Internet Explorer会重置连接。新的TCP / IP套接字用于接收其他请求。
保持活动超时(1分钟)是否可能实际上覆盖了“读取超时”(我理解“读取超时”具有非常长的时间),因此导致TCP连接关闭?
所以现在,这又回到一个问题,当它说“空闲一分钟”时,“空闲”的定义是什么?现在,TCP打开套接字并发出请求,同时等待服务器处理大数据并返回,这是否意味着它现在是“空闲”?
保持活动超时(1分钟)是否可能实际上覆盖了“读取超时”(我理解“读取超时”具有非常长的时间),因此导致TCP连接关闭?
不,HTTP保持活动和TCP保持活动(不清楚您的实际含义是什么,并且它们具有不同的含义)都与超时无关,因为套接字是空闲的。
idle的解释是什么?
空闲意味着没有数据被传输。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句