Как закрыть/очистить соединение через веб-сокет со стороны сервера с помощью TomcatJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как закрыть/очистить соединение через веб-сокет со стороны сервера с помощью Tomcat

Сообщение Anonymous »

Я использую jakarta.websocket на Tomcat и хочу, чтобы мой сервер через некоторое время закрыл соединение веб-сокета с подключенным клиентом. Для этого я вызываю session.close(), который затем действительно срабатывает
@OnClose
public void end() {}

Однако я вижу, что клиент (который, возможно, не выполняет заключительное рукопожатие) все еще может отправлять двоичные сообщения на сервер через предыдущий (предположительно закрытый) сеанс. Ожидается ли это? Действительно ли обе стороны должны согласиться на то, чтобы сервер закрыл/очистил сеанс? Я также думал установить для сеанса тайм-аут в несколько миллисекунд, но не знаю, сработает ли это. Или, может быть, каким-то образом отключить от Tomcat базовое TCP-соединение, но я снова не знаю, как это сделать.
В конечном итоге, как я могу заставить полностью очистить сеанс со стороны сервера и, таким образом, сделать клиент не может связаться с сервером, используя свой предыдущий сеанс?
Я закрываю его из работающего:
private class disconnector implements Runnable {
public void run() {
try {
session.close();
} catch (IOException e) {
// So far, I have not noticed any exceptions here
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/743 ... ith-tomcat
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»