MQTT知识点

    本文地址:http://tongxinmao.com/Article/Detail/id/482

    qos=0:“至多一次”,这一级别会发生消息丢失或重复,消息发布依赖于TCP/IP网络
    qos=1:“至少一次”,确保消息到达,但消息重复可能会发生
    qos=2:“只有一次”,确保消息到达一次


    cleanSession
    cleanSession 标志是 MQTT 协议中对一个客户端建立 TCP 连接后是否关心之前状态的定义。具体语义如下:

    cleanSession具体含义
    true非持久化连接,客户端再次上线时,将不再关心之前所有的订阅关系以及离线消息
    false持久化连接,客户端再次上线时,还需要处理之前的离线消息,而之前的订阅关系也会持续生效


    QoS 和 cleanSession 的不同组合产生的结果如下表所示:

    QoS 级别cleanSession=truecleanSession=false
    QoS0无离线消息,在线消息只尝试推一次无离线消息,在线消息只尝试推一次
    QoS1无离线消息,在线消息保证可达有离线消息,所有消息保证可达
    QoS2无离线消息,在线消息保证只推一次有离线消息,所有消息保证只推一次


    层级分类
    主题层级分隔符: /
    多层通配符: #
    单层通配符: +



    当我们使用MQTT客户端发布消息(PUBLISH)时,如果将RETAIN标志位设置为true,那么MQTT服务器会将最近收到的一条RETAIN标志位为true的消息保存在服务器端(内存或文件)。
    特别注意:MQTT服务器只会为每一个Topic保存最近收到的一条RETAIN标志位为true的消息!也就是说,如果MQTT服务器上已经为某个Topic保存了一条Retained消息,当客户端再次发布一条新的Retained消息,那么服务器上原来的那条消息会被覆盖!

    每当MQTT客户端连接到MQTT服务器并订阅了某个topic,如果该topic下有Retained消息,那么MQTT服务器会立即向客户端推送该条Retained消息。




    上一篇:VCB listview 快速刷新大量数据
    下一篇:VCB 10.3.3 下载 及注册 及更新包