-
public interface WebSocketWebSocketクライアント。
インキュベーション機能。将来のリリースで削除されます。WebSocketを作成するには、HttpClient.newWebSocketBuilder()メソッドを使用します。WebSocketを閉じるには、sendCloseまたはabortのいずれかのメソッドを使用します。WebSocketメッセージは、
WebSocketを介して送信され、WebSocketListenerを介して受信されます。 メッセージは、出力が閉じられるまで送信され、入力が閉じられるまで受信されます。 出力と入力の両方が閉じているWebSocketは、それ自体が閉じられていると考えられます。 これらの状態をチェックするには、isOutputClosed()とisInputClosed()を使用します。メッセージを送信するメソッドは、メッセージが送信されると正常に完了する
CompletableFutureを返します。エラーが発生した場合は例外的に完了します。メッセージを受信するには、まずそれをリクエストします。
nメッセージがリクエストされた場合、リスナーはWebSocketから指定されたメソッドのより多くの呼び出しをnまで受信します。 メッセージをリクエストするには、request(long)を使用します。 リクエストは加算演算です。つまり、request(n)に続くrequest(m)はrequest(n + m)に相当します。部分的にメッセージを送信または受信する場合、メッセージ全体は、最後の呼び出しが追加のメソッド引数を介して識別される一連の1つ以上の呼び出しとして転送されます。
特に指定がない限り、
nullの引数はWebSocketのメソッドでNullPointerExceptionをスローします。同様に、WebSocketはnullの引数をListenerのメソッドに渡しません。- 実装要件:
WebSocketのメソッドは、NullPointerException、IllegalArgumentException、およびIllegalStateExceptionに関して、失敗-アトミックです。 つまり、メソッドが例外をスローするか、返されたCompletableFutureが例外を指定して例外的に完了すると、WebSocketはメソッドがまったく呼び出されていないかのように動作します。WebSocketは、リスナーのメソッドをスレッド・セーフな方法で呼び出します。WebSocketは、それぞれPongメッセージとCloseメッセージで応答することによって、PingとCloseメッセージを自動的に処理します。 リスナーがPingまたはCloseメッセージを受信した場合、リスナーからの必須アクションは必要ありません。- 導入されたバージョン:
- 9
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 インタフェース 説明 static interfaceWebSocket.BuilderWebSocketインスタンスを作成するためのビルダー。static interfaceWebSocket.ListenerWebSocketの受信インタフェース。static classWebSocket.MessagePart部分メッセージを識別するためにWebSocket.Listenerによって使用されるマーカー。
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static intNORMAL_CLOSUREWebSocket Closeメッセージのステータス・コード(1000)は、正常終了を示します。これは、接続が確立された目的が達成されたことを意味します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 voidabort()このWebSocketを突然閉じます。StringgetSubprotocol()このWebSocketのサブ・プロトコルを返します。booleanisInputClosed()このWebSocketがメッセージを受信するために完全に閉じられているかどうかを伝えます。booleanisOutputClosed()このWebSocketがメッセージを送信するために完全に閉じられているかどうかを伝えます。voidrequest(long n)このWebSocketからより多くのメッセージをnにリクエストします。CompletableFuture<WebSocket>sendBinary(ByteBuffer message, boolean isLast)指定されたByteBufferからバイナリ・メッセージをバイト数で送信します。CompletableFuture<WebSocket>sendClose(int statusCode, String reason)指定されたステータス・コードと理由でCloseメッセージを送信し、正常終了を開始します。CompletableFuture<WebSocket>sendPing(ByteBuffer message)指定されたByteBufferからバイト数のPingメッセージを送信します。CompletableFuture<WebSocket>sendPong(ByteBuffer message)指定されたByteBufferのバイトを含むPongメッセージを送信します。CompletableFuture<WebSocket>sendText(CharSequence message, boolean isLast)指定されたCharSequenceの文字を含むテキスト・メッセージを送信します。
-
-
-
メソッドの詳細
-
sendText
CompletableFuture<WebSocket> sendText(CharSequence message, boolean isLast)
指定されたCharSequenceの文字を含むテキスト・メッセージを送信します。テキスト・メッセージを送信するには、前のテキストまたはバイナリ・メッセージが送信された後にのみ、このメソッドを呼び出します。 このメソッドから返された
CompletableFutureが完了するまで、文字シーケンスを変更しないでください。このメソッドから返された
CompletableFutureは、次のように例外的に完了できます:-
IllegalArgumentException-messageが不正な形式のUTF-16シーケンスの場合 -
IllegalStateException-sendCloseが呼び出された場合、または前のメッセージがまだ送信されていない場合、または以前のバイナリ・メッセージがisLast == falseで送信された場合 -
IOException- I/Oエラーが発生した場合
- 実装上の注意:
- 部分的なUTF-16シーケンスがこのメソッドに渡された場合、返される
CompletableFutureは例外的にIOExceptionで完了します。 - パラメータ:
message- メッセージisLast-trueメッセージの最後の部分であればfalse、そうでなければfalse- 戻り値:
- この
WebSocketで、メッセージが送信されたときに完了するCompletableFuture
-
-
sendBinary
CompletableFuture<WebSocket> sendBinary(ByteBuffer message, boolean isLast)
指定されたByteBufferからバイナリ・メッセージをバイト数で送信します。バイナリ・メッセージを送信するには、前のテキストまたはバイナリ・メッセージが送信された後にのみ、このメソッドを呼び出します。 メッセージは、バッファ位置からその限界までのバイトで構成されます。 このメソッドから返された
CompletableFutureが正常に終了すると、バッファには残りのバイトがありません。 それ以降はバッファにアクセスしてはなりません。このメソッドから返された
CompletableFutureは、次のように例外的に完了できます:-
IllegalStateException-sendCloseが呼び出された場合、または前のメッセージがまだ送信されていない場合、またはisLast == falseで前のテキスト・メッセージが送信された場合 -
IOException- I/Oエラーが発生した場合
- パラメータ:
message- メッセージisLast-trueメッセージの最後の部分であればfalse、そうでなければfalse- 戻り値:
- この
WebSocketで、メッセージが送信されたときに完了するCompletableFuture
-
-
sendPing
CompletableFuture<WebSocket> sendPing(ByteBuffer message)
指定されたByteBufferからバイト数のPingメッセージを送信します。メッセージは、バッファ位置からその限界までの
125バイト以下で構成されます。 このメソッドから返されたCompletableFutureが正常に終了すると、バッファには残りのバイトがありません。 それ以降はバッファにアクセスしてはなりません。このメソッドから返された
CompletableFutureは、次のように例外的に完了できます:-
IllegalArgumentException- メッセージが長すぎる場合 -
IllegalStateException-sendCloseが呼び出された場合 -
IOException- I/Oエラーが発生した場合
- パラメータ:
message- メッセージ- 戻り値:
- Pingメッセージが送信されたときに、この
WebSocketで完了するCompletableFuture
-
-
sendPong
CompletableFuture<WebSocket> sendPong(ByteBuffer message)
指定されたByteBufferのバイトを含むPongメッセージを送信します。メッセージは、バッファ位置からその限界までの
125バイト以下で構成されます。 このメソッドから返されたCompletableFutureが正常に終了すると、バッファには残りのバイトがありません。 それ以降はバッファにアクセスしてはなりません。このメソッドから返された
CompletableFutureは、次のように例外的に完了できます:-
IllegalArgumentException- メッセージが長すぎる場合 -
IllegalStateException-sendCloseが呼び出された場合 -
IOException- I/Oエラーが発生した場合
- パラメータ:
message- メッセージ- 戻り値:
- Pongメッセージが送信されたときに、この
WebSocketで完了するCompletableFuture
-
-
sendClose
CompletableFuture<WebSocket> sendClose(int statusCode, String reason)
指定されたステータス・コードと理由でCloseメッセージを送信し、正常終了を開始します。このメソッドが返すとき、出力は閉じられています。
statusCodeは、範囲1000 <= code <= 4999の整数です。 ステータス・コード1002、1003、1006、1007、1009、1010、1012、1013および1015は不正です。 他のステータス・コードに関する動作は実装固有です。reasonは、123バイト以下のUTF-8表現を持つ文字列です。一般的なケースでは、ステータス・コードとして整数定数
NORMAL_CLOSUREを使用し、理由として空の文字列を使用します。このメソッドから返された
CompletableFutureは、次のように例外的に完了できます:-
IllegalArgumentException-statusCodeまたはreasonが不正な場合 -
IOException- I/Oエラーが発生した場合
- 実装要件:
- Closeメッセージを送信しているエンドポイントは、さまざまな理由により、補完的なCloseメッセージを適時に受信しないことがあります。
WebSocket実装は、sendCloseメソッドが呼び出されると、Closeフレームが受信されたかどうかにかかわらず、このAPIのユーザーからの介入なしにWebSocketが終了することを保証するクロージャ・メカニズムを提供する責任があります。 メソッドsendCloseは、おそらく、このAPIのユーザーからの最後の呼び出しであるように設計されています。 - パラメータ:
statusCode- ステータス・コードreason- 理由- 戻り値:
- Closeメッセージが送信されたときに、この
WebSocketで完了するCompletableFuture
-
-
request
void request(long n)
このWebSocketからより多くのメッセージをnにリクエストします。この
WebSocketは、リスナーonText、onBinary、onPing、onPongまたはonCloseメソッドをnまでさらに呼び出します。このメソッドはいつでも呼び出すことができます。
- パラメータ:
n- リクエストされたメッセージの数- 例外:
IllegalArgumentException-n <= 0の場合
-
getSubprotocol
String getSubprotocol()
このWebSocketのサブ・プロトコルを返します。このメソッドはいつでも呼び出すことができます。
- 戻り値:
- この
WebSocketのサブ・プロトコル、またはサブ・プロトコルがない場合は空のString
-
isOutputClosed
boolean isOutputClosed()
このWebSocketがメッセージを送信するために完全に閉じられているかどうかを伝えます。このメソッドが
trueを返した場合、後続の呼び出しでもtrueが返されます。 このメソッドはいつでも呼び出すことができます。- 戻り値:
- 閉じている場合は
true、そうでない場合はfalse
-
isInputClosed
boolean isInputClosed()
このWebSocketがメッセージを受信するために完全に閉じられているかどうかを伝えます。このメソッドが
trueを返した場合、後続の呼び出しでもtrueが返されます。 このメソッドはいつでも呼び出すことができます。- 戻り値:
- 閉じている場合は
true、そうでない場合はfalse
-
abort
void abort()
このWebSocketを突然閉じます。このメソッドが返ると、入力と出力の両方が閉じられます。 このメソッドはいつでも呼び出すことができます。 後続の呼び出しは効果がありません。
- APIの注:
- その実装、状態(例えば、メッセージがその時点で転送されているかどうか)、および関連するリソースの解放中に起こりうるエラーに応じて、この
WebSocketはリスナーonErrorを呼び出すことがあります。
-
-