public void WriteUserProperties(List <MqttUserProperty> userProperties)
        {
            if (userProperties == null || userProperties.Count == 0)
            {
                return;
            }

            var propertyWriter = new MqttPacketWriter();

            foreach (var property in userProperties)
            {
                propertyWriter.WriteWithLengthPrefix(property.Name);
                propertyWriter.WriteWithLengthPrefix(property.Value);
            }

            _packetWriter.Write((byte)MqttPropertyId.UserProperty);
            _packetWriter.WriteVariableLengthInteger((uint)propertyWriter.Length);
            _packetWriter.Write(propertyWriter);
        }
Пример #2
0
        private void WriteAsVariableLengthInteger(MqttPropertyId id, uint?value)
        {
            if (!value.HasValue)
            {
                return;
            }

            _packetWriter.Write((byte)id);
            _packetWriter.WriteVariableLengthInteger(value.Value);
        }
Пример #3
0
        public void Encode_Four_Byte_Integer()
        {
            for (uint i = 0; i < 268435455; i++)
            {
                var writer = new MqttPacketWriter();
                writer.WriteVariableLengthInteger(i);
                var buffer = writer.GetBuffer();

                var reader     = new MqttPacketBodyReader(buffer, 0, writer.Length);
                var checkValue = reader.ReadVariableLengthInteger();

                Assert.AreEqual(i, checkValue);
            }
        }
Пример #4
0
 void WriteAsVariableLengthInteger(MqttPropertyId id, uint value)
 {
     _packetWriter.Write((byte)id);
     _packetWriter.WriteVariableLengthInteger(value);
 }