-
public interface WebSocket
RFC 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
に含まれている場合、バイトはbuffer
position
からbuffer
limit
に配置されているとみなされます。特に指定のないかぎり、
null
パラメータの値により、メソッドとコンストラクタがNullPointerException
をスローします。- 実装上の注意:
- この実装メソッドは、
CompletableFuture
を返す前にブロックしません。 - 導入されたバージョン:
- 9
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 インタフェース 説明 static interface
WebSocket.Builder
WebSocket
インスタンスを作成するためのビルダー。static interface
WebSocket.Listener
WebSocket
のイベントとメッセージのリスナーです。static class
WebSocket.MessagePart
部分的なメッセージが受信される場合にWebSocket.Listener
によって使用されるマーカー。
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static int
NORMAL_CLOSURE
WebSocket Closeメッセージのステータス・コード(1000
)は、正常終了を示します。これは、接続が確立された目的が達成されたことを意味します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 void
abort()
突然WebSocket
を閉じます。String
getSubprotocol()
このWebSocket
に対して選択されたsubprotocolを返します。boolean
isClosed()
WebSocket
が閉じているかどうかを確認します。void
request(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
- 入出力エラーが発生した場合
-
-