Java 嵌入式jetty中的Comed会话超时
如何在cometd的嵌入式jetty中设置sesion超时? 下面是我如何设置超时的,但在服务器会话中它将超时显示为-1Java 嵌入式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
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
参数控制。