学习太极创客 — MQTT 第二章(六)MQTT 遗嘱

视频链接: https://www.bilibili.com/video/BV1B54y1t7j5/?spm_id_from=autoNext&vd_source=b91967c499b23106586d7aa35af46413

资料链接:http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-tuttorial/mqtt-tutorial/mqtt-last-will/

在这里插入图片描述
在这里插入图片描述

当客户端正常断开连接时,会向服务端发送DISCONNECT报文,服务端接收到该报文后,就知道,客户端是正常断开连接,而并非意外断开连接。

MQTT断开连接报文
然而,当服务端在没有收到 DISCONNECT 报文的情况下,发现客户端“心跳”停止了,这时服务端就知道客户端是意外断线了。

通过客户端软件再来举例:

正常连接时,

在这里插入图片描述

当点击 Disconnect 后,这时软件(客户端)就会向 MQTT 服务器发送一个 DISCONNECT 数据包,在此情况下,服务端就知道客户端是正常断开连接的。然而,如果我直接关闭软件或者电脑意外关机,此时,软件(客户端)就不会向 MQTT 服务器发送 DISCONNECT 数据包,也就是说只要客户端不向 MQTT 服务器发送 DISCONNECT 数据包,那么此时就是意外断开连接。

在这里插入图片描述

(只有订阅了遗嘱的客户端才能在发布的客户端意外断开连接时接收到遗嘱信息。)

1、客户端如何将遗嘱消息发送给服务端

在这里插入图片描述

在这里插入图片描述

下面通过 MQTT.fx 这个软件来操作下如何使用 MQTT 遗嘱,

首先,点击齿轮

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
设置好后,点击 OK ,就设置好了。

下面,我们再打开一个 MQTT.fx 软件,当作客户端来订阅上述客户端发布的主题,但是这里有一个很重要的步骤,那就是

1、将之前设置的遗嘱内容给删除掉,因为这里是作为客户端来订阅的,所以不需要这些内容。

在这里插入图片描述

2、点击重新生成 Client ID,这非常重要。

在这里插入图片描述

之后,点击 OK,就设置好了。

在这里插入图片描述

现在,我们将发布遗嘱的客户端意外断开(直接关闭软件),看看会有什么现象。

在这里插入图片描述

如果把遗嘱保留信息给勾选上 ,又会发生什么样的结果呢?

先打开一个软件并进行设置,

在这里插入图片描述

再打开一个软件(与上面说的再打开一个软件的设置一样)

之后,我们将发布遗嘱的客户端意外断开(直接关闭软件),看看会有什么现象。

同样的也会接收到遗嘱信息。
在这里插入图片描述
现在,再打开一个软件(设置也一样,主要是重新生成 ClientID),然后再点击订阅该遗嘱主题。

会发现立刻就收到了遗嘱信息。

在这里插入图片描述
而如果之前是正常断开连接的呢?

正常断开连接时并不会发送,当有其他客户端又订阅了该遗嘱信息时,还是会立刻就收到保留的遗嘱信息的,而不是等到意外断开时才收到。

最后,再来说一说 MQTT 遗嘱操作建议

在这里插入图片描述
(具体如何演示,在后面会介绍)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuechanba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值