@RetentionSE(valueSE=RUNTIMESE) @TargetSE(valueSE=METHODSE) public @interface OnMessage
許可されるパラメーターは次のとおりです。
String
SE はメッセージ全体を受信します Reader
SEDecoder.Text
または Decoder.TextStream
)。ByteBuffer
SEByteBuffer
SE とブール値のペア InputStream
SEDecoder.Binary
または Decoder.BinaryStream
)。PongMessage
javax.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 のメッセージオブジェクトを参照し続けるべきではありません。それらは実装によってリサイクルされる可能性があるためです。修飾子と型 | オプションの要素と説明 |
---|---|
long | maxMessageSize このアノテーションが処理できるメソッドのメッセージの最大サイズをバイト単位で指定します。-1 を指定すると、最大値がないことを示します。 |
public abstract long maxMessageSize
Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.