FixedHeader(固定报文头)VariableHeader(可变报文头)Payload(报文体)MQTT消息格式bit765432101byteMessageType(消息类型)DUPflag(重传标记)QoSlevel(质量等级)RETAIN(保留)1~4byteRemainingLength(剩余字节长度)FixedHeader(固定报文头)bit76543210存在的报文类型1~8byteProtocolname(协议名)(使用UTF8数据流格式,固定字符串MQlsdp)CONNECT1byteProtocolVersion(版本号)(目前,固定版本号3)CONNECT1byteConnectflags(连接标记)CONNECTUserNameFlagPasswordFlagWillRetainWillQosWillFlagCleanSessionReserved2byteKeepAlivetimer(心跳时长)CONNECT1byteConnectreturncode(连接返回码)CONNACK3~32767byteTopicname(主题名称)PUBLISH2byteMessageID(消息ID)PUBLISH(Qos0),PUBACK,PUBREC,PUBREL,PUBCOMP,SUBSCRIBE,SUBACK,UNSUBSCRIBE,UNSUBACKVariableHeader(可变报文头)bit76543210存在的报文类型3~25byteClientID(客户端唯一标识)(使用UTF8数据流格式,长度1~23个字符)CONNECT3~32767byteWillTopic(使用UTF8数据流格式)CONNECT,并且设置了WillFlag?byteWillMessage(使用UTF8数据流格式)CONNECT,并且设置了WillFlag3~32767byteUserName(用户名)CONNECT,并且设置了UserNameFlag3~32767bytePassword(密码)CONNECT,并且设置了PasswordFlag3~0x7F-2byteSubscribePayload(订阅体)(格式:[TopicNameQos]+)SUBSCRIBESubscribeAckQos(订阅回执Qos)(格式:[Qos]+)SUBACKUnSubscribeTopics(取消订阅主题)(使用UTF8数据流格式,格式:[TopicName]+)UNSUBSCRIBEData(数据)(byte[])PUBLISHPayload(报文体)其他1.消息类型2.Qos=0的消息交互2.Qos=1的消息交互2.Qos=2的消息交互