パッケージ jakarta.websocket
アノテーション型 OnMessage
@RetentionSE(RUNTIMESE) @TargetSE(METHODSE) public @interface OnMessage
このメソッドレベルのアノテーションを使用して、Java メソッドに受信 Web ソケットメッセージを受信させることができます。各 WebSocket エンドポイントには、ネイティブ Websocket メッセージ形式(テキスト、バイナリ、ピンポン)ごとに 1 つのメッセージ処理メソッドのみを含めることができます。このアノテーションを使用するメソッドは、以下で説明する型のパラメーターを持つことができます。そうしないと、コンテナーはデプロイ時にエラーを生成します。許可されるパラメーターは次のとおりです。
- 次の選択肢のいずれか 1 つのみ
- メソッドがテキストメッセージを処理している場合:
String
SE はメッセージ全体を受信します- その型に変換されたメッセージ全体を受信するための Java プリミティブまたはクラス
- メッセージを部分的に受け取る文字列とブール値のペア
- メッセージ全体をブロッキングストリームとして受信する
Reader
SE - エンドポイントにテキストデコーダーがあるオブジェクトパラメーター(
Decoder.Text
またはDecoder.TextStream
)。
- メソッドがバイナリメッセージを処理している場合:
- メッセージ全体を受信する byte[] または
ByteBuffer
SE - byte[] とブール値のペア、またはメッセージを部分的に受信する
ByteBuffer
SE とブール値のペア - メッセージ全体をブロッキングストリームとして受信する
InputStream
SE - エンドポイントにバイナリデコーダーがあるオブジェクトパラメーター(
Decoder.Binary
またはDecoder.BinaryStream
)。
- メッセージ全体を受信する byte[] または
- メソッドがポンメッセージを処理している場合:
- ポンメッセージを処理するための
PongMessage
- ポンメッセージを処理するための
- メソッドがテキストメッセージを処理している場合:
- サーバーエンドポイントの
jakarta.websocket.server.PathParam
アノテーションが付けられたゼロから n 文字列または Java プリミティブパラメーター。 - およびオプションの
Session
パラメーター
パラメーターは任意の順序でリストできます。
メソッドは非 void 戻り値型を持つ場合があります。その場合、Web ソケットランタイムはこれを Web ソケットメッセージとして解釈してピアに戻る必要があります。この戻り値型に許可される void 以外のデータ型は、String、ByteBuffer、byte[]、Java プリミティブまたは同等のクラス、エンコーダーが存在するものです。メソッドが Java プリミティブを戻り値として使用する場合、開発者がこのエンドポイントに設定された型のエンコーダーを提供しない限り、実装は Java プリミティブの標準 Java 文字列表現を使用して送信するテキストメッセージを作成する必要があります。利用されます。メソッドが戻り値として Java プリミティブと同等のクラスを使用する場合、実装は上記の Java プリミティブと同等のテキストメッセージを作成する必要があります。
開発者は、戻り型のメソッドの呼び出し中に開発者がセッションを閉じると、メソッドは完了しますが、戻り値はリモートエンドポイントに配信されないことに注意してください。送信失敗は、エンドポイントのエラー処理メソッドに戻されます。
例:
@OnMessage public void processGreeting(String message, Session session) { System.out.println("Greeting received:" + message); }
@OnMessage public void processUpload(byte[] b, boolean last, Session session) { // process partial data here, which check on last to see if these is more on the way }
Reader
SE、ByteBuffer
SE またはInputStream
SE のメッセージオブジェクトを参照し続けるべきではありません。それらは実装によってリサイクルされる可能性があるためです。- 作成者:
- dannycoward
- 次の選択肢のいずれか 1 つのみ
オプション要素のサマリー
オプション要素 修飾子と型 オプションの要素 説明 long
maxMessageSize
このアノテーションが処理できるメソッドのメッセージの最大サイズをバイト単位で指定します。-1 を指定すると、最大値がないことを示します。
要素の詳細
maxMessageSize
long maxMessageSize
このアノテーションが処理できるメソッドのメッセージの最大サイズをバイト単位で指定します。-1 を指定すると、最大値がないことを示します。デフォルトは -1 です。この属性は、アノテーションがメッセージ全体の処理に使用される場合にのみ適用され、メッセージを部分的に処理したり、ストリームまたはリーダーパラメーターを使用して受信メッセージを処理するメソッドには適用されません。受信メッセージ全体がこの制限を超えると、実装はエラーを生成し、メッセージが大きすぎるという理由を使用して接続を閉じます。- 戻り値:
- バイト単位の最大サイズ。
- デフォルト:
- -1L