クラス StompDecoder
java.lang.ObjectSE
org.springframework.messaging.simp.stomp.StompDecoder
ByteBuffer
SE に含まれる 1 つ以上の STOMP フレームをデコードします。バッファーからすべての完全な STOMP フレームを読み取る試みが行われ、0、1、またはそれ以上になる可能性があります。残りのコンテンツ、つまり不完全な STOMP フレームがある場合、最後に部分的なコンテンツの先頭を指すようにバッファがリセットされます。呼び出し側は、利用可能な入力がなくなるまでバッファリングして、不完全なコンテンツを処理する必要があります。
- 導入:
- 4.0
- 作成者:
- Andy Wilkinson, Rossen Stoyanchev
コンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明decode
(ByteBufferSE byteBuffer) 指定されたByteBuffer
から 1 つ以上の STOMP フレームをMessages
のリストにデコードします。decode
(ByteBufferSE byteBuffer, MultiValueMap<StringSE, StringSE> partialMessageHeaders) 指定されたbuffer
から 1 つ以上の STOMP フレームをデコードし、Messages
のリストを返します。設定されたMessageHeaderInitializer
を返します(ある場合)。void
setHeaderInitializer
(MessageHeaderInitializer headerInitializer) デコードされた STOMP フレームからMessages
のヘッダーに適用するMessageHeaderInitializer
を構成します。protected void
skipEol
(ByteBufferSE byteBuffer) 指定された ByteBuffer の先頭で 1 つ以上の EOL 文字をスキップします。
コンストラクターの詳細
StompDecoder
public StompDecoder()
メソッドの詳細
setHeaderInitializer
デコードされた STOMP フレームからMessages
のヘッダーに適用するMessageHeaderInitializer
を構成します。getHeaderInitializer
設定されたMessageHeaderInitializer
を返します(ある場合)。decode
指定されたByteBuffer
から 1 つ以上の STOMP フレームをMessages
のリストにデコードします。入力バッファーに部分的な STOMP フレームコンテンツ、または部分的な STOMP フレームを含む追加コンテンツが含まれている場合、バッファーはリセットされ、null
が返されます。- パラメーター:
byteBuffer
- STOMP フレームをデコードするバッファ- 戻り値:
- デコードされたメッセージ、ない場合は空のリスト
- 例外:
StompConversionException
- デコードの問題が発生した場合に発生します
decode
public ListSE<Message<byte[]>> decode(ByteBufferSE byteBuffer, @Nullable MultiValueMap<StringSE, StringSE> partialMessageHeaders) 指定されたbuffer
から 1 つ以上の STOMP フレームをデコードし、Messages
のリストを返します。指定された ByteBuffer に部分的な STOMP フレームコンテンツのみが含まれ、完全な STOMP フレームが含まれていない場合、空のリストが返され、バッファは元の場所にリセットされます。
バッファに 1 つ以上の STOMP フレームが含まれている場合、それらが返され、未使用の部分コンテンツの先頭を指すようにバッファがリセットされます。
出力 partialMessageHeaders マップは、コンテンツが部分的な場合に正常に解析されたヘッダーを保存するために使用されます。呼び出し元は、"content-length" ヘッダーが読み取られたかどうかを確認できます。これは、次のデコードを試行する前に必要なコンテンツの量を判断できます。
- パラメーター:
byteBuffer
- STOMP フレームをデコードするバッファpartialMessageHeaders
- 部分的なバッファが部分的な STOMP フレームで終了した場合に、部分的なメッセージコンテンツの場合に最後に正常に解析された partialMessageHeaders を格納する空の出力マップ- 戻り値:
- デコードされたメッセージ、ない場合は空のリスト
- 例外:
StompConversionException
- デコードの問題が発生した場合に発生します
skipEol
指定された ByteBuffer の開始時に、1 つ以上の EOL 文字をスキップします。STOMP のセクション 2.1 には、「NULL オクテットの後に複数の EOL をオプションで続けることができます」と記載されています。