public override void Encode(IByteBuffer buffer)
        {
            var buf = Unpooled.Buffer();

            try
            {
                VariableHeader.Encode(buf, FixedHeader);
                Payload.Encode(buf);
                FixedHeader.Encode(buffer, buf.ReadableBytes);
                buffer.WriteBytes(buf);
            }
            finally
            {
                buf?.Release();
            }
        }
Exemple #2
0
        /// <summary>
        /// 编码
        /// </summary>
        /// <param name="buffer"></param>
        public override void Encode(IByteBuffer buffer)
        {
            var buf = Unpooled.Buffer();

            try
            {
                buf.WriteString(TopicName);
                if (Qos > MqttQos.AtMostOnce)
                {
                    buf.WriteUnsignedShort(PacketIdentifier);
                }
                buf.WriteBytes(Payload, 0, Payload.Length);

                FixedHeader.Encode(buffer, buf.ReadableBytes);
                buffer.WriteBytes(buf);
            }
            finally
            {
                buf?.Release();
            }
        }
        public override void Encode(IByteBuffer buffer)
        {
            var buf = Unpooled.Buffer();

            try
            {
                buf.WriteShort(VariableHeader.PacketIdentifier);

                foreach (var item in _topics)
                {
                    buf.WriteString(item);
                }

                FixedHeader.RemaingLength = buf.ReadableBytes;
                FixedHeader.Encode(buffer);
                buffer.WriteBytes(buf);
            }
            finally
            {
                buf?.Release();
            }
        }
Exemple #4
0
 /// <summary>
 /// 编码
 /// </summary>
 /// <param name="buffer"></param>
 public override void Encode(IByteBuffer buffer)
 {
     FixedHeader.Encode(buffer, 2);
     VariableHeader.Encode(buffer);
 }