-
public interface WebSocketRFC 6455に準拠したWebSocketクライアント。
インキュベーション機能。将来のリリースで削除されます。WebSocketは、TCP接続を介した全二重通信を提供します。WebSocketを作成するには、builderを使用します。WebSocketが構築されると、メッセージを送受信する準備が整います。WebSocketが不要になったら、それを閉じなければなりません: クローズ・メッセージは、両方ともsentとreceivedでなければなりません。WebSocketはまた、abruptlyを閉じてもよい。一旦クローズされると、
WebSocketはclosedのままであり、再オープンすることはできません。タイプ
X(ここで、Xは: テキスト、バイナリ、Ping、Pongまたは閉じる)のメッセージは、それぞれWebSocket.send{X}およびWebSocket.Listener.on{X}メソッドを介して非同期的に送受信されます。 各メソッドは、操作が完了すると完了するCompletionStageを返します。メッセージ(任意の型の)は、requestedの場合にのみ受信されることに注意してください。
1つの未処理の送信操作が許可されています。 前の送信操作が完了する前に、送信操作を開始することはできません。 送信時に、返された
CompletableFutureが(通常または例外的に)を完了するまで、メッセージを変更してはなりません。テキスト・メッセージとバイナリ・メッセージは、全体または一部として送受信できます。 メッセージ全体は、対応するメソッドの1つまたは複数の呼び出しのシーケンスとして転送され、最後の呼び出しは追加のメソッド引数を介して識別されます。
メッセージが
ByteBufferに含まれている場合、バイトはbufferpositionからbufferlimitに配置されているとみなされます。特に指定のないかぎり、
nullパラメータの値により、メソッドとコンストラクタがNullPointerExceptionをスローします。- 実装上の注意:
- この実装メソッドは、
CompletableFutureを返す前にブロックしません。 - 導入されたバージョン:
- 9
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 インタフェース 説明 static interfaceWebSocket.BuilderWebSocketインスタンスを作成するためのビルダー。static interfaceWebSocket.ListenerWebSocketのイベントとメッセージのリスナーです。static classWebSocket.MessagePart部分的なメッセージが受信される場合にWebSocket.Listenerによって使用されるマーカー。
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static intNORMAL_CLOSUREWebSocket Closeメッセージのステータス・コード(1000)は、正常終了を示します。これは、接続が確立された目的が達成されたことを意味します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 voidabort()突然WebSocketを閉じます。StringgetSubprotocol()このWebSocketに対して選択されたsubprotocolを返します。booleanisClosed()WebSocketが閉じているかどうかを確認します。voidrequest(long n)nより多くのメッセージをListenerが受信できるようにします。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<WebSocket>を返します。返された
CompletableFutureが(通常または例外的に)を完了するまで、CharSequenceを変更してはなりません。返された
CompletableFutureは、次のように例外的に完了できます:-
IllegalArgumentException-messageが不正な形式のUTF-16シーケンスの場合 -
IllegalStateException-WebSocketが閉じている場合。またはCloseメッセージが送信された場合。または未処理の送信操作がある場合。または以前のバイナリ・メッセージがisLast == falseで送信された場合 -
IOException- この操作中にI/Oエラーが発生した場合。またはWebSocketがエラーのために閉じられた場合。
- 実装上の注意:
- この実装は、部分的なUTF-16シーケンスを受け入れません。 このようなシーケンスが渡された場合、返された
CompletableFutureは例外的にIOExceptionで完了します。 - パラメータ:
message- メッセージisLast-trueメッセージの最後の部分であればfalse、そうでなければfalse- 戻り値:
- この
WebSocketを持つCompletableFuture
-
-
sendBinary
CompletableFuture<WebSocket> sendBinary(ByteBuffer message, boolean isLast)
指定されたByteBufferからバイナリ・メッセージをバイト数で送信します。メッセージが送信されたときに正常に完了する、またはエラーが発生した場合に例外的に完了する
CompletableFuture<WebSocket>を返します。返された
CompletableFutureは、次のように例外的に完了できます:-
IllegalStateException-WebSocketが閉じている場合。またはCloseメッセージが送信された場合。または未処理の送信操作がある場合。または以前のテキスト・メッセージがisLast == falseで送信された -
IOException- この操作中にI/Oエラーが発生した場合。またはWebSocketがエラーのために閉じられた場合
- パラメータ:
message- メッセージisLast-trueメッセージの最後の部分であればfalse、そうでなければfalse- 戻り値:
- この
WebSocketを持つCompletableFuture
-
-
sendPing
CompletableFuture<WebSocket> sendPing(ByteBuffer message)
指定されたByteBufferからのバイトを含むPingメッセージを送信します。メッセージが送信されたときに正常に完了する、またはエラーが発生した場合に例外的に完了する
CompletableFuture<WebSocket>を返します。Pingメッセージは、クライアントまたはサーバーのいずれかによって送受信されます。 キープアライブとして、またはリモート・エンドポイントがまだ応答していることを確認する手段として機能します。
メッセージは、
125バイト以下で構成する必要があります:message.remaining() <= 125。返された
CompletableFutureは、次のように例外的に完了できます:-
IllegalArgumentException-message.remaining() > 125の場合 -
IllegalStateException-WebSocketが閉じている場合。またはCloseメッセージが送信された場合。または未処理の送信操作がある場合 -
IOException- この操作中にI/Oエラーが発生した場合。またはWebSocketがエラーのために閉じられた場合
- パラメータ:
message- メッセージ- 戻り値:
- この
WebSocketを持つCompletableFuture
-
-
sendPong
CompletableFuture<WebSocket> sendPong(ByteBuffer message)
指定されたByteBufferからのバイトを持つPongメッセージを送信します。メッセージが送信されたときに正常に完了する、またはエラーが発生した場合に例外的に完了する
CompletableFuture<WebSocket>を返します。Pongメッセージは、未承諾であってもよく、以前に受信したPingにレスポンスして送信されてもよい。 後者の場合、Pongの内容は元のPingと同一でなければなりません。
メッセージは、
125バイト以下で構成する必要があります:message.remaining() <= 125。返された
CompletableFutureは、次のように例外的に完了できます:-
IllegalArgumentException-message.remaining() > 125の場合 -
IllegalStateException-WebSocketが閉じている場合。またはCloseメッセージが送信された場合。または未処理の送信操作がある場合 -
IOException- この操作中にI/Oエラーが発生した場合。またはWebSocketがエラーのために閉じられた場合
- パラメータ:
message- メッセージ- 戻り値:
- この
WebSocketを持つCompletableFuture
-
-
sendClose
CompletableFuture<WebSocket> sendClose(int statusCode, String reason)
指定されたステータス・コードと理由でCloseメッセージを送信します。このメソッドが呼び出されると、これ以降のメッセージは送信されません。
statusCodeは、範囲1000 <= code <= 4999の整数です。 ただし、一部の実装では、すべてのステータス・コードが有効であるとは限りません。 実装にかかわらず、1000は常に有効であり、1002、1003、1005、1006、1007、1009、1010、1012、1013および1015は常に不正なコードである。reasonは、短い文字列で、123バイトより長くないUTF-8表現を持たなければなりません。 Closeメッセージ、ステータス・コード、および理由の詳細については、RFC 6455のセクション「5.5.1。閉じる」と「7.4。ステータス・コード」を参照してください。このメソッドは、メッセージが送信されたときに正常に完了する、またはエラーが発生した場合に例外的に完了する
CompletableFuture<WebSocket>を返します。返された
CompletableFutureは、次のように例外的に完了できます:-
IllegalArgumentException-statusCodeが不正な値を持つ場合。またはreasonに長さが<= 123のUTF-8表現がない場合 -
IOException- この操作中にI/Oエラーが発生した場合。またはWebSocketがエラーのために閉じられました
このメソッドがすでに呼び出されているか、または
WebSocketが閉じられている場合、このメソッドのその後の呼び出しは効果がなく、返されたCompletableFutureは正常に完了します。Closeメッセージがreceived beforeの場合、この呼び出しは終了ハンドシェークを完了し、返された
CompletableFutureが完了するまでにWebSocketが閉じられます。- パラメータ:
statusCode- ステータス・コードreason- 理由- 戻り値:
- この
WebSocketを持つCompletableFuture
-
-
request
void request(long n)
nより多くのメッセージをListenerが受信できるようにします。受信メッセージの実際の数は、Closeメッセージが受信された場合、
WebSocketが終了した場合、またはエラーが発生した場合には少なくなります。作成されたばかりの
WebSocketはまだ何もリクエストしていません。 通常、メッセージの最初のリクエストはListener.onOpenで行われます。WebSocketが閉じている場合、このメソッドを呼び出すことは効果がありません。- 実装上の注意:
- この実装では、メッセージの受信方法が事前に分かっていないため、部分メッセージと全体メッセージを区別しません。
サーバーがリクエストより多くのメッセージを送信した場合、この実装はこれらのメッセージをTCP接続にキューイングし、送信者にTCPフロー制御による送信を強制的に停止させる可能性があります。
- パラメータ:
n- メッセージ数- 例外:
IllegalArgumentException-n < 0の場合
-
getSubprotocol
String getSubprotocol()
このWebSocketに対して選択されたsubprotocolを返します。- 戻り値:
- サブ・プロトコル、または存在しない場合は空の
String
-
isClosed
boolean isClosed()
WebSocketが閉じているかどうかを確認します。WebSocketが閉じられると、それ以上のメッセージは送信または受信できません。- 戻り値:
WebSocketが閉じている場合はtrue、それ以外の場合はfalse
-
abort
void abort() throws IOException突然WebSocketを閉じます。このメソッドはいつでも呼び出すことができます。 このメソッドは、基底のTCP接続を閉じ、
WebSocketを閉じた状態にします。結果として、
onCloseまたはonErrorが以前に呼び出されていない限り、Listener.onCloseが呼び出されます。 この場合、追加の呼び出しは行われません。WebSocketがすでに閉じられている場合、このメソッドを呼び出すことは効果がありません。- 例外:
IOException- 入出力エラーが発生した場合
-
-