Java 嵌入式jetty中的Comed会话超时

Java 嵌入式jetty中的Comed会话超时,java,embedded-jetty,cometd,Java,Embedded Jetty,Cometd,如何在cometd的嵌入式jetty中设置sesion超时? 下面是我如何设置超时的,但在服务器会话中它将超时显示为-1 public void addCometDServletHolder(CometDServlet cometdServlet) { ServletHolder comet = new ServletHolder(cometdServlet); comet.setInitParameter("timeout", "60000"); comet.setI

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

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

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

如果这就是您想要优化的,那么有一个
BayeuxServer
设置,您可以在上面的代码片段中将其设置为
60000
,还有一个
ServerSession
设置。 如果未明确设置后者,则使用前者

在您的情况下,调用
ServerSession.getTimeout()
返回
-1
,因为您没有为特定的
ServerSession
对象显式设置它,所以使用了
BayeuxServer
设置

请注意,此“超时”控制心跳消息频率,而不是在客户端崩溃时服务器上
ServerSession
对象的过期时间


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

谢谢sbordet。然后我可以知道如何使
ServerSession
过期吗?您不能直接使
ServerSession
过期,但可以断开它的连接,请参阅
ServerSession
api以了解相应的方法。强制断开客户端与服务器的连接通常在聊天应用程序中完成,以踢/禁止用户。过期时间由
maxInterval
参数控制。