【发布时间】:2011-11-06 08:39:07
【问题描述】:
我目前有一个基于 JVM 的网络客户端,它使用标准 java.net.HttpURLConnection 执行 HTTP 长轮询(又名彗星)请求。我为连接设置了非常高的超时时间(1 小时)。对于大多数用户来说,它工作正常。但是有些用户没有收到服务器发来的数据,最终在1小时后超时。
我的理论是(NAT)路由器超时并丢弃它们的连接,因为它们在服务器发送任何数据之前空闲时间过长。
那么我的问题是:
我可以为 java.net.HttpURLConnection 使用的连接启用 TCP keep-alive 吗?我找不到这样做的方法。
我应该使用不同的 API(不同于 HttpURLConnection)吗?
其他解决方案?
【问题讨论】:
标签: java comet httpurlconnection long-polling keep-alive