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(); } }
/// <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(); } }
/// <summary> /// 编码 /// </summary> /// <param name="buffer"></param> public override void Encode(IByteBuffer buffer) { FixedHeader.Encode(buffer, 2); VariableHeader.Encode(buffer); }