2015-04-08 2 views
0

Как установить тайм-аут sesion в встроенный причал для cometd? Ниже приведено как установить таймаут, но в сеансах сервера он показывает тайм-аут как -1.Тайм-аут сеанса Cometd во встроенном причале

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

ответ

0

CometD ServerSessiontimeout параметр контролирует частоту сердечных сокращений CometD сообщений на /meta/connect канале.

Если это то, что вы хотите настроить, есть настройка BayeuxServer, которую вы установили в своем фрагменте выше 60000, и есть настройка ServerSession. Первый используется, если последний не был явно установлен.

В вас случае вызова ServerSession.getTimeout() возвращается -1, потому что вы не установили его явно для этого конкретного ServerSession объекта, поэтому используется установка BayeuxServer.

Обратите внимание, что этот «тайм-аут» управляет частотой сообщений сердцебиения, а не истечением ServerSession объектов на сервере в случае сбоя клиента.

Для получения дополнительной информации о значении параметров конфигурации CometD обратитесь к documentation.

+0

Спасибо, sbordet. Тогда я мог бы узнать, как закончить «ServerSession»? – usp

+0

Вы не можете истечь непосредственно в «ServerSession», но его можно отключить, см. API-интерфейсы ServerSession для соответствующего метода. Вынужденное отключение клиента с сервера обычно выполняется в приложениях чата, чтобы нажимать/запрещать пользователя. Истечение срока действия контролируется параметром 'maxInterval'. – sbordet

Смежные вопросы