嵌入式码头中的 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。
如何在 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。