モジュール jdk.incubator.httpclient
パッケージ jdk.incubator.http

インタフェースWebSocket.Listener

  • 含まれているインタフェース:
    WebSocket

    public static interface WebSocket.Listener
    WebSocketの受信インタフェース。
    インキュベーション機能。将来のリリースで削除されます。

    WebSocketは、メッセージを受信するかイベントに遭遇すると、そのリスナー上でメソッドを呼び出します。 呼び出すWebSocketは、引数としてListenerメソッドに渡されます。 WebSocketは、リスナー上のメソッドをスレッド・セーフな方法で呼び出します。

    リスナー・メソッドが例外をスローした場合や、メソッドから戻されたCompletionStageが例外的に完了した場合は、特に明記されていない限り、WebSocketはこの例外とともにonErrorを呼び出します。

    リスナー・メソッドがCompletionStageではなくnullを戻す場合、WebSocketは、リスナーがすでに正常に完了したCompletionStageを戻したかのように動作します。

    導入されたバージョン:
    9
    • メソッドの詳細

      • onOpen

        default void onOpen​(WebSocket webSocket)
        WebSocketが接続されています。

        これは最初の呼び出しであり、最大で1回だけ作成されます。 このメソッドは通常、メッセージの初期リクエストを行うために使用されます。

        実装要件:
        このメソッドのデフォルトの実装は、次のように動作します:
        
             webSocket.request(1);
         
        パラメータ:
        webSocket - 接続されているWebSocket
      • onText

        default CompletionStage<?> onText​(WebSocket webSocket,
                                          CharSequence message,
                                          WebSocket.MessagePart part)
        テキスト・メッセージを受信しました。

        メッセージ全体が受信された場合、このメソッドはMessagePart.WHOLEマーカーで呼び出されます。 それ以外の場合は、FIRST、おそらくはPARTLASTマーカーを使用して呼び出されます。 このメッセージが部分的な場合は、不完全なUTF-16シーケンスである可能性があります。 ただし、最後までのすべてのメッセージの連結は完全なUTF-16シーケンスになります。

        WebSocketによって使用されるCompletionStageCharSequenceを再利用できるシグナルとして返します。 これが完了した後、CharSequenceにアクセスしないでください。

        実装要件:
        このメソッドのデフォルトの実装は、次のように動作します:
        
             webSocket.request(1);
             return null;
         
        実装上の注意:
        このメソッドは、完全なUTF-16シーケンスである文字シーケンスで常に呼び出されます。
        パラメータ:
        webSocket - メッセージが受信されたWebSocket
        message - メッセージ
        part - 一部
        戻り値:
        CharSequenceが再生されるときに完了するCompletionStage。すぐに回収できる場合はnull
      • onBinary

        default CompletionStage<?> onBinary​(WebSocket webSocket,
                                            ByteBuffer message,
                                            WebSocket.MessagePart part)
        バイナリ・メッセージが受信されました。

        メッセージ全体が受信された場合、このメソッドはMessagePart.WHOLEマーカーで呼び出されます。 それ以外の場合は、FIRST、おそらくはPARTLASTマーカーを使用して呼び出されます。

        このメッセージは、バッファ位置からその限界までのバイトで構成されます。

        WebSocketによって使用されるCompletionStageByteBufferを再利用できるシグナルとして返します。 これが完了した後、ByteBufferにアクセスしないでください。

        実装要件:
        このメソッドのデフォルトの実装は、次のように動作します:
        
             webSocket.request(1);
             return null;
         
        パラメータ:
        webSocket - メッセージが受信されたWebSocket
        message - メッセージ
        part - 一部
        戻り値:
        ByteBufferが再生されるときに完了するCompletionStage。すぐに回収できる場合はnull
      • onPing

        default CompletionStage<?> onPing​(WebSocket webSocket,
                                          ByteBuffer message)
        Pingメッセージを受信しました。

        メッセージは、バッファ位置からその限界までの125バイト以下で構成されます。

        WebSocketによって使用されるCompletionStageByteBufferを再利用できるシグナルとして返します。 これが完了した後、ByteBufferにアクセスしないでください。

        実装要件:
        このメソッドのデフォルトの実装は、次のように動作します:
        
             webSocket.request(1);
             return null;
         
        パラメータ:
        webSocket - メッセージが受信されたWebSocket
        message - メッセージ
        戻り値:
        ByteBufferが再生されるときに完了するCompletionStage。すぐに回収できる場合はnull
      • onPong

        default CompletionStage<?> onPong​(WebSocket webSocket,
                                          ByteBuffer message)
        Pongメッセージが受信されました。

        メッセージは、バッファ位置からその限界までの125バイト以下で構成されます。

        WebSocketによって使用されるCompletionStageByteBufferを再利用できるシグナルとして返します。 これが完了した後、ByteBufferにアクセスしないでください。

        実装要件:
        このメソッドのデフォルトの実装は、次のように動作します:
        
             webSocket.request(1);
             return null;
         
        パラメータ:
        webSocket - メッセージが受信されたWebSocket
        message - メッセージ
        戻り値:
        ByteBufferが再生されるときに完了するCompletionStage。すぐに回収できる場合はnull
      • onClose

        default CompletionStage<?> onClose​(WebSocket webSocket,
                                           int statusCode,
                                           String reason)
        Closeメッセージを受信しました。

        これはWebSocketからの最後の呼び出しです。 この呼び出しが始まるときまでに、WebSocket入力は閉じられています。 WebSocketから何らかのメッセージがリクエストされているかどうかにかかわらず、いつでもonOpenの後にこの呼び出しを受け取る準備をしてください。

        Closeメッセージは、ステータス・コードと終了理由で構成されています。 ステータス・コードは、範囲1000 <= code <= 65535の整数です。 reasonは、123バイトよりも長くないUTF-8表現を持つ文字列です。

        WebSocketが出力を閉じる可能性のある信号として使用するCompletionStageを返します。 WebSocketは、返されたCompletionStageの完了の最も早い段階で出力を閉じるか、sendCloseメソッドを呼び出します。

        このメソッドから例外がスローされた場合、またはそれから返されたCompletionStageが例外的に完了した場合、結果の動作は未定義です。

        パラメータ:
        webSocket - メッセージが受信されたWebSocket
        statusCode - ステータス・コード
        reason - 理由
        戻り値:
        WebSocketが閉じられたときに完了するCompletionStage。すぐに閉じられる場合はnull
      • onError

        default void onError​(WebSocket webSocket,
                             Throwable error)
        回復不能なエラーが発生しました。

        これはWebSocketからの最後の呼び出しです。 この呼び出しが開始されるまでに、WebSocketの入力と出力の両方が閉じられます。 WebSocketから何らかのメッセージがリクエストされているかどうかにかかわらず、いつでもonOpenの後にこの呼び出しを受け取る準備をしてください。

        このメソッドから例外がスローされた場合、結果の動作は未定義です。

        パラメータ:
        webSocket - エラーが発生したWebSocket
        error - エラー