MQTT 5协议QoS 1与QoS 2的变更确认及重传规则相关疑问咨询
MQTT 5.0 QoS 重传规则相关问题解答
问题1:HiveMQ文章相关表述是否属实
该表述属于对MQTT 5.0官方规范中QoS重传规则的合理归纳,表述属实。
你没有在官方文档中找到完全一致的原话,是因为该内容是对规则的简化总结,而非直接引用原文。MQTT 5.0规范中明确调整了3.1.1版本允许的主动定时重传逻辑:当连接处于活跃状态时,发送端 不应当 在未收到确认报文时主动重传QoS 1/2消息,只有在连接断开后重建会话时,才需要对会话中存储的未完成确认的消息执行重传。
问题2:重传触发场景是否仅为两类
该理解存在偏差。MQTT 5.0中QoS 1/2消息的重传 唯一触发条件 是:连接断开后重新建立持久会话。
你提到的“接收方无法访问导致消息未被确认”的场景,如果此时连接还处于活跃状态(没有触发断开逻辑),发送端不会触发重传,只会继续等待确认报文返回。
问题3:网络拥塞但PING交互正常时是否会触发重传
该场景下不会触发消息重传。
PINGREQ/PINGRESP交互正常说明当前连接处于 健康活跃状态,符合规范中“不主动重传”的要求,哪怕因为网络拥塞导致确认报文延迟,发送端也不会主动重传未确认的消息,只有后续连接断开再重连时,才会对未确认的消息执行重传。
内容的提问来源于stack exchange,提问作者HDenied
相关产品推荐
相关产品推荐

