0

クライアントサーバーアプリケーションがあり、クライアントはJavaデスクトップアプリケーションに基づいており、サーバーはエンドポイントが公開され、TomcatがデプロイされたWebアプリケーションです。

以下のシナリオ@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このような上記の障害の場合に役立ちます。

4

1 に答える 1