クラス StompDecoder

java.lang.ObjectSE
org.springframework.messaging.simp.stomp.StompDecoder

public class StompDecoder extends ObjectSE
ByteBufferSE に含まれる 1 つ以上の STOMP フレームをデコードします。

バッファーからすべての完全な STOMP フレームを読み取る試みが行われ、0、1、またはそれ以上になる可能性があります。残りのコンテンツ、つまり不完全な STOMP フレームがある場合、最後に部分的なコンテンツの先頭を指すようにバッファがリセットされます。呼び出し側は、利用可能な入力がなくなるまでバッファリングして、不完全なコンテンツを処理する必要があります。

導入:
4.0
作成者:
Andy Wilkinson, Rossen Stoyanchev
  • コンストラクターの詳細

    • StompDecoder

      public StompDecoder()
  • メソッドの詳細

    • setHeaderInitializer

      public void setHeaderInitializer(@Nullable MessageHeaderInitializer headerInitializer)
      デコードされた STOMP フレームから Messages のヘッダーに適用する MessageHeaderInitializer を構成します。
    • getHeaderInitializer

      @Nullable public MessageHeaderInitializer getHeaderInitializer()
      設定された MessageHeaderInitializer を返します(ある場合)。
    • decode

      public ListSE<Message<byte[]>> decode(ByteBufferSE byteBuffer)
      指定された 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

      protected void skipEol(ByteBufferSE byteBuffer)
      指定された ByteBuffer の開始時に、1 つ以上の EOL 文字をスキップします。STOMP のセクション 2.1 には、「NULL オクテットの後に複数の EOL をオプションで続けることができます」と記載されています。