嵌入式jetty中的Cometd会话超时

时间:2015-04-08 01:08:43

标签: java embedded-jetty cometd

如何在嵌入式jetty中为cometd设置会话超时? 下面是我设置超时的方法,但在服务器会话中,它将超时显示为-1。

public void addCometDServletHolder(CometDServlet cometdServlet) {
    ServletHolder comet = new ServletHolder(cometdServlet);
    comet.setInitParameter("timeout", "60000"); 
    comet.setInitParameter("ws.idleTimeout", "120000");

1 个答案:

答案 0 :(得分:0)

CometD ServerSession timeout参数控制/meta/connect频道上CometD心跳消息的频率。

如果这是您要调整的内容,则会设置BayeuxServer设置,您在上面的代码段中设置60000,并且设置为ServerSession。 如果未明确设置后者,则使用前者。

在您的情况下,调用ServerSession.getTimeout()会返回-1,因为您没有为该特定ServerSession对象明确设置它,因此使用BayeuxServer设置。

注意这个"超时"在客户端崩溃的情况下,控制心跳消息频率,而不是服务器上ServerSession个对象的到期。

有关CometD配置参数含义的更多信息,请参阅documentation