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 c6fe90d7..86acfc0c 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 @@ -30,6 +30,7 @@ public class MQTTDecoder extends ByteToMessageDecoder { m_decoderMap.put(AbstractMessage.PINGRESP, new PingRespDecoder()); m_decoderMap.put(AbstractMessage.UNSUBACK, new UnsubAckDecoder()); m_decoderMap.put(AbstractMessage.PUBCOMP, new PubCompDecoder()); + m_decoderMap.put(AbstractMessage.PUBREC, new PubRecDecoder()); } @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 935893bc..dee60c5b 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 @@ -29,6 +29,7 @@ public class MQTTEncoder extends MessageToByteEncoder { m_encoderMap.put(AbstractMessage.PINGRESP, new PingRespEncoder()); m_encoderMap.put(AbstractMessage.UNSUBACK, new UnsubAckEncoder()); m_encoderMap.put(AbstractMessage.PUBCOMP, new PubCompEncoder()); + m_encoderMap.put(AbstractMessage.PUBREC, new PubRecEncoder()); } @Override diff --git a/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/PubRecDecoder.java b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/PubRecDecoder.java new file mode 100644 index 00000000..c6a01d0a --- /dev/null +++ b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/PubRecDecoder.java @@ -0,0 +1,16 @@ +package org.dna.mqtt.moquette.parser.netty; + +import org.dna.mqtt.moquette.proto.messages.MessageIDMessage; +import org.dna.mqtt.moquette.proto.messages.PubRecMessage; + +/** + * + * @author andrea + */ +class PubRecDecoder extends MessageIDDecoder { + + @Override + protected MessageIDMessage createMessage() { + return new PubRecMessage(); + } +} diff --git a/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/PubRecEncoder.java b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/PubRecEncoder.java new file mode 100644 index 00000000..1aea2b06 --- /dev/null +++ b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/PubRecEncoder.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.PubRecMessage; + +/** + * + * @author andrea + */ +class PubRecEncoder extends DemuxEncoder { + + @Override + protected void encode(ChannelHandlerContext chc, PubRecMessage msg, ByteBuf out) { + out.writeByte(AbstractMessage.PUBREC << 4); + out.writeBytes(Utils.encodeRemainingLength(2)); + out.writeShort(msg.getMessageID()); + } +} \ No newline at end of file