モジュール java.net.http
パッケージ java.net.http

インタフェースWebSocket


public interface WebSocket
WebSocketクライアント。

WebSocketインスタンスはWebSocket.Builderを介して作成されます。

WebSocketには、入力と出力の側があります。 これらの側面は相互に独立しています。 サイドはオープンまたはクローズのいずれかです。 終了すると、サイドはクローズされたままとなります。 WebSocketメッセージはWebSocketを介して送信され、関連付けられたWebSocket.Listenerを介して受信されます。 メッセージは、WebSocket出力が閉じられるまで送信され、WebSocket入力が閉じられるまで受信されます。

Sendメソッドは、sendTextsendBinarysendPingsendPongsendPongおよびsendCloseのメソッドのいずれかです。 送信メソッドは送信操作を開始し、操作が完了すると完了するCompletableFutureを返します。 CompletableFutureが正常に完了すると、操作は成功したとみなされます。 CompletableFutureが例外的に完了した場合、操作は失敗したとみなされます。 開始されたが完了していない操作は保留中とみなされます。

Receiveメソッドは、onTextonBinaryonPingonPongonPongおよびonCloseのメソッドのいずれかです。 WebSocketは、リスナーの受信メソッドを起動することで受信操作を開始します。 その後、リスナーは操作が完了すると完了するCompletionStageを返す必要があります。

メッセージの受信を制御するために、WebSocketは「内部カウンタ」を保守します。 このカウンタ値は、WebSocketがreceiveメソッドをまだ呼び出していない回数です。 このカウンタはゼロですが、WebSocketは受信メソッドを呼び出しません。 request(n)が呼び出されると、カウンタはnごとに増分されます。 WebSocketが受信メソッドを呼び出すと、カウンタは1だけ減分されます。onOpenonErrorはメソッドを受け取りません。 WebSocketは、リスナー上の他のメソッドより前にonOpenを呼び出します。 WebSocketはonOpenを最大で1回呼び出します。 WebSocketはいつでもonErrorを呼び出すことができます。 WebSocketがonErrorまたはonCloseを呼び出すと、カウンタの値にかかわらず、それ以上のリスナー・メソッドは起動されません。 新しく作成されたWebSocketの場合、カウンタはゼロになります。

特に指定がない限り、nullの引数はWebSocketのメソッドでNullPointerExceptionをスローします。同様に、WebSocketnullの引数をListenerのメソッドに渡しません。 WebSocketの状態は、NullPointerExceptionの1つで完了するNullPointerExceptionIllegalArgumentExceptionIllegalStateExceptionのいずれかをスローまたは返す起動によって変更されません。

WebSocketは、PongメッセージとCloseメッセージを返信することで、受信したPingメッセージとCloseメッセージを自動的に処理します。 リスナーがPingまたはCloseメッセージを受信した場合、リスナーからの必須アクションは必要ありません。

APIのノート:
WebSocketとそれに関連するリスナーとの関係は、サブスクリプションと、Flowタイプに関連付けられたサブスクライバの関係に似ています。
導入されたバージョン:
11