У меня есть клиент-серверное приложение, клиент основан на Java Desktop приложение и сервер веб-приложений с конечной точкой подвергается и развернутую кот - клиент/сервер.WebSockets - OnClose - падение интернет-соединение
@OnClose
обрабатывает ниже сценарии. Могу ли я отправить сообщение на конечную точку сервера, когда дело доходит до @OnClose
метода.
мне нужно обрабатывать ситуацию, когда подключение клиента закрывается из-за
1.) соединение падение Интернет
2.) Система переходит в режим гибернации.
У сервера могут быть открыты мои клиенты.
Вот мой код клиента
@ClientEndpoint
public class ChatroomClientEndPoint {
Session session = null;
public ChatroomClientEndPoint() {
URI uri;
try {
uri = new URI("endpoint url");
ContainerProvider.getWebSocketContainer().connectToServer(this, uri);
System.err.println("Connection found");
} catch (Exception ex) {
System.err.println("No connection found-->" + ex);
}
}
@OnOpen
public void processOpen(Session session) throws MalformedURLException, IOException {
session.setMaxIdleTimeout(60000 * 60 * 24); //websocket session timeout =1 day
this.session = session;
}
@OnMessage
public void processMessage(String message) throws JSONException {
// on receiving messages from server, sends desktop notifications
}
public void disConnect() throws IOException {
sendMessage("close");
}
}
** Этот код уже разработан, и я думаю, что они не выполнили @OnClose
, потому что они отправить сообщение близко к серверу, сервер удаляет эту сессию его список.
Может ли @OnClose
помочь в случае вышеуказанных сбоев, подобных этим.