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); } }
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); }