欢迎光临散文网 会员登陆 & 注册

MQTT——遗嘱信息

2022-08-29 11:10 作者:北京微控工业网关  | 我要投稿

遗愿标志(Will Flag)

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

 

意外断开连接:通过心跳机制发现 (客户端未向服务器发送DISCONNECT报文)。

 

当服务端发现某一客户端发生了意外断开,服务端就会向订阅了该客户端遗嘱信息的客户端发布遗嘱信息。

 

遗嘱信息内容在CONNECT报文中由四部分组成:

主题lastWillTopic;

Qos等级lastWillQos;

消息内容lastWillMessage;

保留标志 lastWillRetain : 设置为真,客户端订阅后马上就会收到设置的遗嘱信息;设置为假的话,发布遗嘱信息的客户端发生意外断开之后,订阅了该客户端遗嘱信息的客户端才可收到遗嘱消息。 

MQTT遗嘱操作

假设我们现在有一台MQTT客户端A。在使用MQTT遗嘱时,它的client id是test-1它的遗嘱主题是“test-1-will”。

 

1. 当test-1连接服务端时,CONNECT报文中的遗嘱消息的内容是“offline”。并且它的遗嘱保留设置为 false。

 

2. 当test-1成功连接服务端后,立即向遗嘱主题“test-1-will”发布一条消息“online”。同时在发布此消息时,如果保留标志设置为true。此时,只要test-1在线,那么任何设备一订阅“test-1-will”都能收到设备在线的消息“online”。

 

3. 如果test-1发生意外离线,那么任何设备一订阅“test-1-will”就会收到设备离线的消息“offline”。


MQTT——遗嘱信息的评论 (共 条)

分享到微博请遵守国家法律