diff --git a/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/MQTTDecoder.java b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/MQTTDecoder.java index 79d74027..804feb1f 100644 --- a/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/MQTTDecoder.java +++ b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/MQTTDecoder.java @@ -28,6 +28,7 @@ public class MQTTDecoder extends ByteToMessageDecoder { m_decoderMap.put(AbstractMessage.DISCONNECT, new DisconnectDecoder()); m_decoderMap.put(AbstractMessage.PINGREQ, new PingReqDecoder()); m_decoderMap.put(AbstractMessage.PINGRESP, new PingRespDecoder()); + m_decoderMap.put(AbstractMessage.UNSUBACK, new UnsubAckDecoder()); } @Override diff --git a/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/MQTTEncoder.java b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/MQTTEncoder.java index aea7e3d6..6d165fc9 100644 --- a/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/MQTTEncoder.java +++ b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/MQTTEncoder.java @@ -27,6 +27,7 @@ public class MQTTEncoder extends MessageToByteEncoder { m_encoderMap.put(AbstractMessage.DISCONNECT, new DisconnectEncoder()); m_encoderMap.put(AbstractMessage.PINGREQ, new PingReqEncoder()); m_encoderMap.put(AbstractMessage.PINGRESP, new PingRespEncoder()); + m_encoderMap.put(AbstractMessage.UNSUBACK, new UnsubAckEncoder()); } @Override diff --git a/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/UnsubAckDecoder.java b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/UnsubAckDecoder.java new file mode 100644 index 00000000..d0a73217 --- /dev/null +++ b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/UnsubAckDecoder.java @@ -0,0 +1,17 @@ +package org.dna.mqtt.moquette.parser.netty; + +import org.dna.mqtt.moquette.proto.messages.MessageIDMessage; +import org.dna.mqtt.moquette.proto.messages.UnsubAckMessage; + +/** + * + * @author andrea + */ +class UnsubAckDecoder extends MessageIDDecoder { + + @Override + protected MessageIDMessage createMessage() { + return new UnsubAckMessage(); + } +} + diff --git a/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/UnsubAckEncoder.java b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/UnsubAckEncoder.java new file mode 100644 index 00000000..0f0d879b --- /dev/null +++ b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/UnsubAckEncoder.java @@ -0,0 +1,20 @@ +package org.dna.mqtt.moquette.parser.netty; + +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; +import org.dna.mqtt.moquette.proto.messages.AbstractMessage; +import org.dna.mqtt.moquette.proto.messages.UnsubAckMessage; + +/** + * + * @author andrea + */ +class UnsubAckEncoder extends DemuxEncoder { + + @Override + protected void encode(ChannelHandlerContext chc, UnsubAckMessage msg, ByteBuf out) { + out.writeByte(AbstractMessage.UNSUBACK << 4). + writeBytes(Utils.encodeRemainingLength(2)). + writeShort(msg.getMessageID()); + } +} \ No newline at end of file