本文主要是介绍MQTT: Packet Identifier,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Packet Identifier
长度:两个字节
有 Packet id 的 MQTT 包:
- PUBLISH (QoS > 0), PUBACK, PUBREC, PUBREL, PUBCOMP
- SUBSCRIBE, SUBACK
- UNSUBSCRIBE, UNSUBACK
客户端每次发送一个新的包的时候,必须给这个包设置一个从未使用过的 Packet Id.
当客户端重新发送一个包的时候,必须保证这个包和之前发送时候使用的 Packet Id 相同。
客户端在接受的一个带有 Packet Id 的包的 “ACK” 响应之后,可以重用当前 Packet Id。
Control Packet | “ACK” |
---|---|
PUBLISH (QoS=1) | PUBACK |
PUBLISH (QoS=2) | PUBCOMP |
SUBSCRIBE | SUBACK |
UNSUBCRIBE | UNSUBACK |
对于 QoS 是 0 的 PUBLISH 包,不能携带 Packet Id。此时 Packet Id 需要被设置为 0.
服务器和客户端在选择 Packet Id 时,是相互独立的。
使用 Packet Id 之后,可以并行的发送多个消息,然后等该他们对应的响应。
这篇关于MQTT: Packet Identifier的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!