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 804feb1f..c6fe90d7 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 @@ -29,6 +29,7 @@ public class MQTTDecoder extends ByteToMessageDecoder { m_decoderMap.put(AbstractMessage.PINGREQ, new PingReqDecoder()); m_decoderMap.put(AbstractMessage.PINGRESP, new PingRespDecoder()); m_decoderMap.put(AbstractMessage.UNSUBACK, new UnsubAckDecoder()); + m_decoderMap.put(AbstractMessage.PUBCOMP, new PubCompDecoder()); } @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 6d165fc9..935893bc 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 @@ -28,6 +28,7 @@ public class MQTTEncoder extends MessageToByteEncoder { m_encoderMap.put(AbstractMessage.PINGREQ, new PingReqEncoder()); m_encoderMap.put(AbstractMessage.PINGRESP, new PingRespEncoder()); m_encoderMap.put(AbstractMessage.UNSUBACK, new UnsubAckEncoder()); + m_encoderMap.put(AbstractMessage.PUBCOMP, new PubCompEncoder()); } @Override diff --git a/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/PubCompDecoder.java b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/PubCompDecoder.java new file mode 100644 index 00000000..6ca4013d --- /dev/null +++ b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/PubCompDecoder.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.PubCompMessage; + + +/** + * + * @author andrea + */ +class PubCompDecoder extends MessageIDDecoder { + + @Override + protected MessageIDMessage createMessage() { + return new PubCompMessage(); + } +} diff --git a/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/PubCompEncoder.java b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/PubCompEncoder.java new file mode 100644 index 00000000..93bab459 --- /dev/null +++ b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/PubCompEncoder.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.PubCompMessage; +import org.dna.mqtt.moquette.proto.messages.AbstractMessage; + +/** + * + * @author andrea + */ +class PubCompEncoder extends DemuxEncoder { + + @Override + protected void encode(ChannelHandlerContext chc, PubCompMessage msg, ByteBuf out) { + out.writeByte(AbstractMessage.PUBCOMP << 4); + out.writeBytes(Utils.encodeRemainingLength(2)); + out.writeShort(msg.getMessageID()); + } +}