Quality of service(QoS 服务质量)
MQTT协议提供三种服务质量:最多一次、最少一次、只有一次
-
QoS 0,最多一次:消息最多被传递一次,甚至根本没有被传递。它在网络上的传输不被确认,消息不被存储。如果客户端没有连接,消息将会丢失。QoS0是传输的最快模式。
在服务模式为0时,MQTT协议不要求服务器把发布的消息转发给一个客户端。如果这个客户端在服务器收到消息时未连接,发布可能被丢弃,具体取决于服务的实现。 -
QoS 1,最少一次:消息总是被传递至少一次。如果在发送端收到确认之前出现故障, 消息可能会多次发送。消息必须在发送端本地存储,直到发送端收到由接收端发布的该消息的确认。消息存储起来以防需要再次发送。
-
QoS 2,只有一次: 消息总是被发送有且只有一次。消息必须在发送端本地存储,直到发送端收到由接收端发布的该消息的确认。消息存储起来以防需要再次发送。QoS2 是最安全, 但也是最慢的传输方式。使用比 QoS1 更复杂的握手和确认程序, 以确保不会发送重复的消息。