Websockets - onclose - server/client - 互联网连接断开

Websockets - onclose - server/client - internet connection drop

我有客户端-服务器应用程序客户端基于Java桌面应用程序,服务器是 Web 应用程序,端点已公开 并已部署 tomcat.

@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 可以提供帮助吗?

我为此找到了 solution/workaround。

一旦您的互联网连接中断,套接字通道保持不变,客户端无法再发送消息。

我做了什么,每当请求到达我的服务器端点时,我都会询问客户端 "if it is connected",然后最多等待 3 秒才能获得响应,但失败这样做,这意味着套接字未连接。