クラス BufferingStompDecoder
java.lang.ObjectSE
org.springframework.messaging.simp.stomp.BufferingStompDecoder
親クラスがそこからすべての(完全な)STOMP フレームを読み取った後、入力 ByteBuffer に残っているコンテンツをバッファーする
StompDecoder
の拡張。残りのコンテンツは、不完全な STOMP フレームを表しています。追加のデータで繰り返し呼び出されると、decode メソッドは 1 つ以上のメッセージを返すか、まだ十分なデータがない場合はバッファリングを続けます。このデコーダーの単一のインスタンスを繰り返し呼び出して、デコードが失敗しない限り、単一のストリーム(WebSocket セッションなど)からすべてのメッセージを読み取ることができます。例外がある場合、内部状態の一貫性が保証されないため、StompDecoder インスタンスを使用しないでください。基になるセッションはその時点で閉じられていることが予想されます。
- 導入:
- 4.0.3
- 作成者:
- Rossen Stoyanchev
- 関連事項:
コンストラクターのサマリー
コンストラクター説明BufferingStompDecoder
(StompDecoder stompDecoder, int bufferSizeLimit) 指定されたStompDecoder
をラップする新しいBufferingStompDecoder
を作成します。メソッドのサマリー
修飾子と型メソッド説明decode
(ByteBufferSE newBuffer) 指定されたByteBuffer
から 1 つ以上の STOMP フレームをMessages
のリストにデコードします。int
現在のバッファサイズを計算します。final int
設定されたバッファサイズ制限を返します。現在バッファリングされている不完全な STOMP フレームの予想コンテンツ長を取得します。final StompDecoder
ラップされたStompDecoder
を返します。
コンストラクターの詳細
BufferingStompDecoder
指定されたStompDecoder
をラップする新しいBufferingStompDecoder
を作成します。- パラメーター:
stompDecoder
- ラップするターゲットデコーダbufferSizeLimit
- バッファサイズの制限
メソッドの詳細
getStompDecoder
ラップされたStompDecoder
を返します。getBufferSizeLimit
public final int getBufferSizeLimit()設定されたバッファサイズ制限を返します。decode
指定されたByteBuffer
から 1 つ以上の STOMP フレームをMessages
のリストにデコードします。"content-length" ヘッダーを解析するのに十分なデータがあった場合、その値を使用して、新たにデコードを試行する前に必要なデータ量を決定します。
"content-length" を解析するのに十分なデータがない場合、または "content-length" ヘッダーがある場合、それ以降のすべての呼び出しは、利用可能なすべてのデータを使用して再度解析を試みます。"content-length" ヘッダーの存在は、大きなメッセージのデコードを最適化できます。
- パラメーター:
newBuffer
- デコードする新しいデータを含むバッファ- 戻り値:
- デコードされたメッセージまたは空のリスト
- 例外:
StompConversionException
- デコードの問題が発生した場合に発生します
getBufferSize
public int getBufferSize()現在のバッファサイズを計算します。getExpectedContentLength
現在バッファリングされている不完全な STOMP フレームの予想コンテンツ長を取得します。