我尝试了各种组合并始终获得超时,我无法通过文档中指示的配置进行更改。
以下是我的web.xml的一部分:
<servlet>
<description>AtmosphereServlet</description>
<servlet-name>AtmosphereServlet</servlet-name>
<servlet-class>org.atmosphere.cpr.AtmosphereServlet</servlet-class>
<init-param>
<param-name>org.atmosphere.websocket.maxIdleTime</param-name>
<!--10 minutes-->
<param-value>600000</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.cpr.CometSupport.maxInactiveActivity</param-name>
<!--10 minutes-->
<param-value>600000</param-value>
</init-param>
<async-supported>true</async-supported>
<load-on-startup>2</load-on-startup>
</servlet>
当我设置org.atmosphere.websocket.maxIdleTime时,超时是立即的,它根本不起作用。
更改org.atmosphere.cpr.CometSupport.maxInactiveActivity似乎没有任何影响。它总是在1分钟后超时。
我一起尝试了每个参数。
timedout():424, AsynchronousProcessor {org.atmosphere.cpr}
我也试过了:
AtmosphereRequest req = r.getRequest();
// First, tell Atmosphere
// to allow bi-directional communication by suspending.
if (req.getMethod().equalsIgnoreCase("GET"))
{
r.suspend(10 * 60 * 1000);
}
谢谢!
更新 作为一种解决方法,我升级到1.1.0.RC1并使用了这个:
<init-param>
<param-name>org.atmosphere.cpr.AtmosphereInterceptor</param-name>
<param-value>org.atmosphere.interceptor.HeartbeatInterceptor</param-value>
</init-param>
这是一个很好的补充。
仍然无法配置服务器端超时。
答案 0 :(得分:1)
萨吕,
请在Github上提交一个问题,以便RC2修复。
谢谢!
- Jeanfrancois