public class BufferingStompDecoder extends ObjectSE
StompDecoder
の拡張。残りのコンテンツは、不完全な STOMP フレームを表しています。追加のデータで繰り返し呼び出されると、decode メソッドは 1 つ以上のメッセージを返すか、まだ十分なデータがない場合はバッファリングを続けます。このデコーダーの単一のインスタンスを繰り返し呼び出して、デコードが失敗しない限り、単一のストリーム(WebSocket セッションなど)からすべてのメッセージを読み取ることができます。例外がある場合、内部状態の一貫性が保証されないため、StompDecoder インスタンスを使用しないでください。基になるセッションはその時点で閉じられていることが予想されます。
StompDecoder
コンストラクターと説明 |
---|
BufferingStompDecoder(StompDecoder stompDecoder, int bufferSizeLimit) 指定された StompDecoder をラップする新しい BufferingStompDecoder を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
ListSE<Message<byte[]>> | decode(ByteBufferSE newBuffer) 指定された ByteBuffer から 1 つ以上の STOMP フレームを Messages のリストにデコードします。 |
int | getBufferSize() 現在のバッファサイズを計算します。 |
int | getBufferSizeLimit() 設定されたバッファサイズ制限を返します。 |
IntegerSE | getExpectedContentLength() 現在バッファリングされている不完全な STOMP フレームの予想コンテンツ長を取得します。 |
StompDecoder | getStompDecoder() ラップされた StompDecoder を返します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public BufferingStompDecoder(StompDecoder stompDecoder, int bufferSizeLimit)
StompDecoder
をラップする新しい BufferingStompDecoder
を作成します。stompDecoder
- ラップするターゲットデコーダ bufferSizeLimit
- バッファサイズの制限 public final StompDecoder getStompDecoder()
StompDecoder
を返します。public final int getBufferSizeLimit()
public ListSE<Message<byte[]>> decode(ByteBufferSE newBuffer)
ByteBuffer
から 1 つ以上の STOMP フレームを Messages
のリストにデコードします。"content-length" ヘッダーを解析するのに十分なデータがあった場合、その値を使用して、新たにデコードを試行する前に必要なデータ量を決定します。
"content-length" を解析するのに十分なデータがない場合、または "content-length" ヘッダーがある場合、それ以降のすべての呼び出しは、利用可能なすべてのデータを使用して再度解析を試みます。"content-length" ヘッダーの存在は、大きなメッセージのデコードを最適化できます。
newBuffer
- デコードする新しいデータを含むバッファ StompConversionException
- デコードの問題が発生した場合に発生します public int getBufferSize()