HTTP Keep-Alive可以维持长轮询吗?

时间:2015-04-03 01:08:32

标签: java http java-ee tcp timeout

我对长轮询的理解是,向服务器发送请求,服务器花一些时间将数据返回给我们,或者逐渐发回数据。

我的java servlet应用程序遇到问题(在weblogic服务器上运行),在客户端发出请求后,后端servlet的处理时间大约需要1分钟,当servlet尝试发回响应时,我遇到了& #34;破管#34;问题

我的客户报告了这个问题,我无法在我的环境中重现它,事实上,我写了一个小的servlet来测试我最终会遇到读取超时问题。毫不奇怪,我的浏览器可以等待服务器返回响应超过5分钟。

我的客户端如何解决这种破损的管道问题可能是什么原因?

我怎么可能解决它?

根据http://support.microsoft.com/en-us/kb/813827

  

Internet Explorer重用与之相同的TCP / IP套接字   收到初始请求,直到套接字空闲一分钟。   连接空闲一分钟后,Internet Explorer将重置   连接。新的TCP / IP套接字用于接收额外的   请求。

保持活动超时(1分钟)是否可能实际覆盖“读取超时”' (我的理解' read-timeout'有很长的时间),所以它导致TCP连接关闭?

所以现在,这也回来了一个问题,当它说“闲置一分钟”时,"空闲"?的定义是什么?现在TCP打开一个套接字并发出请求,同时等待服务器处理大数据并返回,是否意味着它是"空闲"现在?

1 个答案:

答案 0 :(得分:1)

  

保持活动超时(1分钟)是否可能实际覆盖“读取超时”' (我的理解'读取超时'有非常长的时间),所以它导致TCP连接关闭?

不,HTTP keep-alive和TCP keep-alive(不清楚你实际意味着哪一个,并且它们有不同的含义)都与超时有关,因为套接字是空闲的。

  

" idle"?

的定义是什么?

空闲意味着没有数据传输。