我在 Ubuntu (JDK 1.6) 上使用 Tomcat 6.0.24 和一个应用程序,该应用程序在 HTTPS 连接器上执行 Comet 风格的请求(直接针对 Tomcat,不使用 APR)。
我想将 keep-alive 设置为 5 分钟,这样我就不必刷新我的长轮询连接。这是我的配置:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="1000" keepAliveTimeout="330000"
scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
Run Code Online (Sandbox Code Playgroud)
不幸的是,服务器似乎在 65 秒后关闭了连接。示例会话中的 pcap 如下所示:
T=0 Client sends SYN to server, handshake etc.
T=65 Server sends FIN to client
T=307 Client sends FIN to server
Run Code Online (Sandbox Code Playgroud)
(我猜客户端上的 5 分钟超时是由于 HTTP 库没有检测到服务器端的套接字关闭,但无论如何——服务器不应该那么早关闭连接)
(编辑:这在使用标准 HTTP 连接器时按预期工作)