クラス BufferingStompDecoder
java.lang.ObjectSE
org.springframework.messaging.simp.stomp.BufferingStompDecoder
StompDecoder
を使用して、ByteBuffer
SE を 1 つ以上の STOMP メッセージにデコードします。メッセージが不完全な場合、未使用のコンテンツはバッファリングされ、次の入力バッファと結合されます。または、データがまだ十分でない場合は、バッファリングが続行されます。このデコーダーの単一のインスタンスは、デコードが失敗しない限り、単一のストリーム (たとえば、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 フレームの予想コンテンツ長を取得します。