zoukankan      html  css  js  c++  java
  • mqtt 消息重传

    消息重传
    MQTT协议标准规范的一部分。
      协议规定作为通信双方 服务端 和 客户端 对于自己发送到对端的 publish 消息都应该满足其 服务质量的要求。
      QoS 1:消息至少送达一次;即发送端会一直重发该消息,除非收到了对端对该消息的确认。是在MQTT协议的上层(即业务的应用层)相同QoS1 消息可能会受到多次。
      QoS 2:消息只送达一次;即该消息在上层仅会接收到一次。
    注:QoS 1 和QoS 2 的publish 报文在MQTT协议栈这一层都会发送重传,
      QoS 1 消息发生重传后,在MQTT 协议栈上层,也会收到这些重发的publish消息。
      QoS 2 消息无论如何重传,最终在MQTT协议栈上层,都只会收到一条publish消息。。

    消息重发的两种场景
      1、publish 报文发送给对端后,规定时间内未收到应答。则重发这个报文。
      2、在保持会话的情况下,客户端重连后; emqx会自动重发为应答的消息,以确保QoS 流程的正确。


      文件 etc/emqx.conf 中
      retry_interval  duration 默认 30s 等待一个超时间隔,如果没收到应答则重传消息。

    协议规范与设计
      重传对象
      QoS 1 ,涉及2个报文,发送端和接收端各发送1次;这2个报文有相同的PacketId。只需要对publish报文进行重发。
      QoS 2 , 涉及4个报文,发送端和接收端各发送2次;这4个报文有相同的PacketId。需要发送端对publish和pubrel报文进行重发。

  • 相关阅读:
    Scala 基础语法(二)
    Scala 基础语法(一)
    Scala 概述+scala安装教程+IDEA创建scala工程
    树链剖分【p2590】[ZJOI2008]树的统计
    树链剖分【p1505】[国家集训队]旅游
    状压DP【p1896】[SCOI2005]互不侵犯
    树链剖分【P3833】 [SHOI2012]魔法树
    KMP【UVA1328】 Period
    Trie树【UVA11362】Phone List
    线段树【p2801】教主的魔法
  • 原文地址:https://www.cnblogs.com/wgy1/p/13708448.html
Copyright © 2011-2022 走看看