/// <summary> /// 解码 /// </summary> /// <param name="buffer"></param> /// <param name="fixedHeader"></param> /// <param name="variableHeader"></param> public void Decode(IByteBuffer buffer, FixedHeader fixedHeader, ConnectVariableHeader variableHeader) { int remainingLength = fixedHeader.RemaingLength; ClientId = buffer.ReadString(ref remainingLength); if (variableHeader.WillFlag) { WillTopic = buffer.ReadString(ref remainingLength); //WillMessage = buffer.ReadBytes(3); } }
/// <summary> /// 编码 /// </summary> /// <param name="buffer"></param> /// <param name="variableHeader"></param> public void Encode(IByteBuffer buffer, ConnectVariableHeader variableHeader) { buffer.WriteString(ClientId); if (variableHeader.WillFlag) { buffer.WriteString(WillTopic); buffer.WriteBytes(WillMessage); } if (variableHeader.UsernameFlag) { buffer.WriteString(UserName); } if (variableHeader.PasswordFlag) { buffer.WriteString(Password); } }