Class MqttDecoder

All Implemented Interfaces:
ChannelHandler, ChannelInboundHandler

public final class MqttDecoder extends ReplayingDecoder<MqttDecoder.DecoderState>
Decodes Mqtt messages from bytes, following the MQTT protocol specification v3.1 or v5.0, depending on the version specified in the CONNECT message that first goes through the channel.
  • Field Details

    • mqttFixedHeader

      private MqttFixedHeader mqttFixedHeader
    • variableHeader

      private Object variableHeader
    • bytesRemainingInVariablePart

      private int bytesRemainingInVariablePart
    • maxBytesInMessage

      private final int maxBytesInMessage
    • maxClientIdLength

      private final int maxClientIdLength
    • strictUtf8Validation

      private final boolean strictUtf8Validation
    • utf8Decoder

      private CharsetDecoder utf8Decoder
  • Constructor Details

    • MqttDecoder

      public MqttDecoder()
    • MqttDecoder

      public MqttDecoder(int maxBytesInMessage)
    • MqttDecoder

      public MqttDecoder(int maxBytesInMessage, int maxClientIdLength)
    • MqttDecoder

      public MqttDecoder(int maxBytesInMessage, int maxClientIdLength, boolean strictUtf8Validation)
      Creates a new MqttDecoder.
      Parameters:
      maxBytesInMessage - the maximum number of bytes a decoded message may consume.
      maxClientIdLength - the maximum length of the Client Identifier (CONNECT payload).
      strictUtf8Validation - if true (default), every UTF-8 Encoded String is validated according to MQTT 3.1.1 and MQTT 5.0 malformed UTF-8 sequences (including surrogates and overlong forms) and an embedded U+0000 are rejected as a Malformed Packet. If false, the legacy behaviour is preserved, malformed bytes are silently replaced with U+FFFD and U+0000 is accepted.
  • Method Details