Websockets - onclose - 服务器/客户端 - 互联网连接丢失

时间:2016-05-20 05:06:16

标签: java websocket connection-close

我有客户端 - 服务器应用程序客户端基于Java Desktop 应用程序,而服务器是带有端点公开的Web应用程序并部署了tomcat

@OnClose是否处理以下方案。我可以在@OnClose方法发送一些消息到服务器端点。

我需要处理因

而关闭客户端连接的情况

1。)Internet丢弃连接

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可以提供帮助。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案/解决方法。

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

我做了什么,每当请求来到我的服务器端点时,我问客户"如果它已连接" ,则max i等待3秒钟以获得响应,失败为此,它表示套接字未连接。