blog
blog copied to clipboard
关于QoS 1的问题
File: /zh/202212/introduction-to-mqtt-qos.md
关于QoS 1的报文重复问题,我看了MQTT协议文档
造成重复的原因应该是后端对于qos1的publish包没有存任何状态,所以无法判断dup=1时,是否处理过
和package id无关吧?
@CoderIvan 是的,接收端不能根据 DUP 来判断已经接收过这个消息。
@tigercl 感谢回复,所以和是否重复使用相同的package_id无关吧?,就算用不同的package_id也是无法判断吧?
@tigercl 感谢回复,所以和是否重复使用相同的package_id无关吧?,就算用不同的package_id也是无法判断吧?
@tigercl 感谢回复,所以和是否重复使用相同的
package_id无关吧?,就算用不同的package_id也是无法判断吧?
是的,虽然重传的时候必须使用与原始消息相同的 Packet ID,然后我们无法保证发送端在其他时候不会使用这个 Packet ID。
比如我们一次性发送多个 QoS 为 1 的消息,实际上这些消息中的 Packet ID 可以是一样的,因为接收端总是在响应完上一条消息后才来处理下一条消息,所以它总会认为消息中的 Packet ID 目前是可用的。