diff --git a/src/main/java/org/dna/mqtt/moquette/proto/ConnectEncoder.java b/src/main/java/org/dna/mqtt/moquette/proto/ConnectEncoder.java index 0034a303..871957d5 100644 --- a/src/main/java/org/dna/mqtt/moquette/proto/ConnectEncoder.java +++ b/src/main/java/org/dna/mqtt/moquette/proto/ConnectEncoder.java @@ -16,7 +16,10 @@ public class ConnectEncoder implements MessageEncoder { public void encode(IoSession session, ConnectMessage message, ProtocolEncoderOutput out) throws Exception { IoBuffer staticHeaderBuff = IoBuffer.allocate(12); staticHeaderBuff.put(Utils.encodeString("MQIsdp")); - + + //version + staticHeaderBuff.put((byte)0x03); + //connection flags and Strings byte connectionFlags = 0; if (message.isCleanSession()) { diff --git a/src/test/java/org/dna/mqtt/moquette/proto/ConnectEncoderTest.java b/src/test/java/org/dna/mqtt/moquette/proto/ConnectEncoderTest.java index 876b6c30..a67d6cd4 100644 --- a/src/test/java/org/dna/mqtt/moquette/proto/ConnectEncoderTest.java +++ b/src/test/java/org/dna/mqtt/moquette/proto/ConnectEncoderTest.java @@ -68,6 +68,7 @@ public class ConnectEncoderTest { assertEquals(0x10, m_mockProtoEncoder.getBuffer().get()); //1 byte assertEquals(12, m_mockProtoEncoder.getBuffer().get()); //remaining length verifyString("MQIsdp", m_mockProtoEncoder.getBuffer()); + assertEquals(0x03, m_mockProtoEncoder.getBuffer().get()); //protocol version assertEquals(0x32, m_mockProtoEncoder.getBuffer().get()); //flags assertEquals(2, m_mockProtoEncoder.getBuffer().get()); //keepAliveTimer msb assertEquals(0, m_mockProtoEncoder.getBuffer().get()); //keepAliveTimer lsb @@ -94,6 +95,7 @@ public class ConnectEncoderTest { assertEquals(0x10, m_mockProtoEncoder.getBuffer().get()); //1 byte assertEquals(36, m_mockProtoEncoder.getBuffer().get()); //remaining length verifyString("MQIsdp", m_mockProtoEncoder.getBuffer()); + assertEquals(0x03, m_mockProtoEncoder.getBuffer().get()); //protocol version assertEquals(0x36, m_mockProtoEncoder.getBuffer().get()); //flags assertEquals(2, m_mockProtoEncoder.getBuffer().get()); //keepAliveTimer msb assertEquals(0, m_mockProtoEncoder.getBuffer().get()); //keepAliveTimer lsb @@ -129,6 +131,7 @@ public class ConnectEncoderTest { assertEquals(0x10, m_mockProtoEncoder.getBuffer().get()); //1 byte assertEquals(48, m_mockProtoEncoder.getBuffer().get()); //remaining length verifyString("MQIsdp", m_mockProtoEncoder.getBuffer()); + assertEquals(0x03, m_mockProtoEncoder.getBuffer().get()); //protocol version assertEquals((byte)0xF6, (byte)m_mockProtoEncoder.getBuffer().get()); //flags assertEquals(2, m_mockProtoEncoder.getBuffer().get()); //keepAliveTimer msb assertEquals(0, m_mockProtoEncoder.getBuffer().get()); //keepAliveTimer lsb