Qos服务质量、心跳机制、保留消息,遗嘱信息,用户密码认证

这里写目录标题

  • Qos服务质量
  • 使用ESP8266接收QoS=1的MQTT消息
  • 保留消息(retainFlag)
  • 心跳机制
  • 遗嘱信息

Qos服务质量

若想实现QoS>0,订阅端连接服务端时cleanSession需要设置为false,订阅端订阅主题时QoS>0,发布端发布消息时的QoS>0。
服务端会选择发布消息和订阅消息中较低的QoS来实现消息传输,这也被称作“服务降级”。
QoS = 0, 占用的网络资源最低,但是接收端可能会出现无法接收消息的情况,所以适用于传输重要性较低的信息。
QoS = 1, MQTT会确保接收端能够接收到消息,但是有可能出现接收端反复接收同一消息的情况。
QoS = 2, MQTT会确保接收端只接收到一次消息。但是QoS为2时消息传输最慢,另外消息传输需要多次确认,因此所占用的网络资源也是最多的。此类服务等级适用于重要消息传输。
由于QoS1和QoS2都能确保客户端接收到消息,但是QoS1所占用的资源较QoS2占用资源更小。因此建议使用QoS1来实现网络资源较为珍贵的环境下传输重要信息。

使用ESP8266接收QoS=1的MQTT消息

要使用QoS=1订阅MQTT消息,需要满足以下要求:
1 接收端要有确定的clientID
2 接收端连接服务器时 cleanSession=False
3 发送端发布消息时 QoS=1或QoS=2
4 接收端订阅消息时 QoS=1

保留消息(retainFlag)

测试数据的客户端向主题发布消息时如果将“保留消息”这选择变为true,那么当其它客户端刚订阅这个主题时都会收到测试数据的客户端最后一次上传的数据。

心跳机制

用来确认客户端和服务端是否还处于连接状态。

遗嘱信息

当发布遗嘱信息的客户端掉线后,订阅了该主题的客户端都会收到该遗嘱信息里的内容。
遗嘱信息实在与服务器连接的时候就要确认好的,即填一下三个信息:

lastWillTopic – 遗嘱主题

和普通主题一样。

lastWillQoS – 遗嘱QoS

与之前学的Qos相同。

lastWillRetain – 遗嘱保留

遗嘱消息也可以设置为保留消息,遗嘱保留用于设置遗嘱消息是否需要进行保留处理。服务端会根据此处内容,对遗嘱消息进行相应的保留与否处理。

你可能感兴趣的:(服务器,运维)