Decode() public method

public Decode ( MqttPacketBuffer buffer ) : MqttPacket
buffer MqttPacketBuffer
return MqttPacket
 public static TPacket EncodeAndDecodePacket<TPacket>(TPacket packet, MqttProtocolVersion protocolVersion) where TPacket : MqttPacket
 {
     using (var helper = new MqttPacketSerializationHelper(protocolVersion))
     {
         var buffer = helper.Encode(packet);
         return (TPacket)helper.Decode(buffer);
     }
 }
Ejemplo n.º 2
0
        public void Serialize_LargePacket()
        {
            const int payloadLength = 80000;

            var payload = new byte[payloadLength];

            var value = 0;

            for (var i = 0; i < payloadLength; i++)
            {
                if (value > 255)
                {
                    value = 0;
                }

                payload[i] = (byte)value;
            }

            var publishPacket = new MqttPublishPacket
            {
                Topic   = "abcdefghijklmnopqrstuvwxyz0123456789",
                Payload = payload
            };


            var serializationHelper = new MqttPacketSerializationHelper();

            var buffer            = serializationHelper.Encode(publishPacket);
            var publishPacketCopy = serializationHelper.Decode(buffer) as MqttPublishPacket;

            Assert.IsNotNull(publishPacketCopy);
            Assert.AreEqual(publishPacket.Topic, publishPacketCopy.Topic);
            CollectionAssert.AreEqual(publishPacket.Payload, publishPacketCopy.Payload);

            // Now modify the payload and test again.
            publishPacket.Payload = Encoding.UTF8.GetBytes("MQTT");

            buffer = serializationHelper.Encode(publishPacket);
            var publishPacketCopy2 = serializationHelper.Decode(buffer) as MqttPublishPacket;

            Assert.IsNotNull(publishPacketCopy2);
            Assert.AreEqual(publishPacket.Topic, publishPacketCopy2.Topic);
            CollectionAssert.AreEqual(publishPacket.Payload, publishPacketCopy2.Payload);
        }