网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

MQTT的基本特性 | 第3部分

更新时间:2026年03月27日   作者:spoto   标签(Tag):
先决条件/前提条件 –
  • 消息队列遥测传输协议(MQTT)
  • MQTT的基本特性 | 第1部分
  • MQTT的基本特性 | 第二部分
最后的遗嘱与遗言:在MQTT协议中,发布者客户端会将消息发布到特定的主题上,以便Broker能够接收这些消息。 然后,该经纪人将这些消息发布给那些订阅了该主题的客户。 如果出版商/订阅者希望与代理断开连接,他们就会发送DISCONNECT消息。 通过这种方式,通信可以优雅地中断。不过,在某些情况下,客户端可能会突然断开连接。 在这种情况下,客户端无需发送DISCONNECT消息,就可以与经纪人进行通信。 在这种情况下,其他客户将无法得知该客户已经失败的消息。因此,他们将继续等待来自那个已断开连接的客户的消息。客户可能会因为以下任何原因而突然断开连接——
  • 由于连接中断或硬件故障,底层网络出现了故障。
  • 在保持连接的期限内未能发送消息。
为了解决这个问题,采用了“最后发送的消息”这一概念。利用这一功能,客户端在首次连接到代理服务器时,会发送一条预定义的告别消息。这条消息会被代理服务器保存下来。
  • 如果客户端突然断开连接,那么代理将会在所有已订阅的客户端上发布该消息到指定的主题上。
  • 如果客户端能够优雅地断开连接,那么中介服务器就会丢弃该消息。
LWT消息与LWT主题:
  • LWT消息指的是那些需要被发布的消息,这些消息实际上是发送给已订阅用户的“最后遗言”。
  • LWT主题用于定义最后一条消息的发布主题。
图/图片 –遗书/遗嘱示例 –图 –在上面的插图中,相关的主题是“传感器/状态”,而消息的内容则是“离线”。当客户端突然断开连接时,Mosquito Broker的终端会显示套接字错误。因此,Broker会将“离线”的消息发送给那些订阅了“传感器/状态”主题的客户端。Mosquitto命令:
  • 遗愿主题(必填项)–如果未提供其他参数,那么仅发布最后一个主题时,会向订阅的客户端发送非持久化的、长度为零的消息,且该消息的QoS为0。
    --will-topic
  • 最后的遗言/信息(可选)–默认情况下,会显示一段长度为零的空消息。
     --will-payload
  • 最后遗嘱服务质量设置(可选)默认为QoS0。
    --will-qos
  • 保留最后的遗嘱内容(可选)默认情况下,会保留“false”的值。
    --will-retain
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料