spring-framework / org.springframework.messaging.simp.stomp / StompDecoder / decode

decode

open fun decode(byteBuffer: ByteBuffer): MutableList<Message<ByteArray>>

Decodes one or more STOMP frames from the given ByteBuffer into a list of Messages. If the input buffer contains partial STOMP frame content, or additional content with a partial STOMP frame, the buffer is reset and null is returned.

Parameters

byteBuffer - the buffer to decode the STOMP frame from

Exceptions

StompConversionException - raised in case of decoding issues

Return
the decoded messages, or an empty list if none

open fun decode(byteBuffer: ByteBuffer, @Nullable partialMessageHeaders: MultiValueMap<String, String>): MutableList<Message<ByteArray>>

Decodes one or more STOMP frames from the given buffer and returns a list of Messages.

If the given ByteBuffer contains only partial STOMP frame content and no complete STOMP frames, an empty list is returned, and the buffer is reset to to where it was.

If the buffer contains one ore more STOMP frames, those are returned and the buffer reset to point to the beginning of the unused partial content.

The output partialMessageHeaders map is used to store successfully parsed headers in case of partial content. The caller can then check if a "content-length" header was read, which helps to determine how much more content is needed before the next attempt to decode.

Parameters

byteBuffer - the buffer to decode the STOMP frame from

partialMessageHeaders - an empty output map that will store the last successfully parsed partialMessageHeaders in case of partial message content in cases where the partial buffer ended with a partial STOMP frame

Exceptions

StompConversionException - raised in case of decoding issues

Return
the decoded messages, or an empty list if none