嵌入式码头中的 Cometd 会话超时

Cometd session timeout in embedded jetty

如何在 cometd 的嵌入式码头中设置会话超时? 下面是我如何设置超时,但在服务器会话中它显示超时为 -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() returns -1 因为你没有为那个特定的 ServerSession 对象明确设置它,所以 BayeuxServer 设置被使用了。

请注意,此 "timeout" 控制心跳消息频率,而不是客户端崩溃时服务器上 ServerSession 对象的到期时间。

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