当前位置:   article > 正文

深入理解MQTT

mqtt

1、MQTT介绍

1.1、什么是 MQTT

轻量级物联网消息传输协议,采用发布/订阅模式,允许客户端通过代理服务器

1.2、MQTT特点 / 优点

 (1)轻量级

(2)发布/订阅模式

生产者将消息发布到特定的主题(Topic),而消费者则可以订阅感兴趣的主题

(3)可靠性

提供不同的服务质量(QoS)级别,包括至多一次传递、至少一次传递和仅一次传递

(4)长连接

客户端可以通过定期发送心跳包来保持连接,减少了因频繁连接和断开而产生的开销

(5)遗嘱消息

当客户端异常断开连接时,服务端可以向 订阅了该客户端主题其他客户端发送遗嘱消息,以便实现状态管理和异常处理

(6)适用性广泛

包括物联网、传感器网络、移动应用、实时监控等

1.3、MQTT相比HTTP优势

(1)更轻量级

HTTP头部信息很大,MQTT其头部信息较小,传输效率高,适合在带宽有限的网络环境中使用

(2) 发布/订阅模式

(3)适用于异步通信

MQTT客户端可以订阅主题并接收实时的消息;而 HTTP 协议通常是同步通信,客户端需要主动发起请求才能获取数据。

(4)长链接:MQTT是长链接,HTTP不是长链接

(5)更适用于物联网和传感器网络

1.4、MQTT服务端选择

EMQ X或阿里云。这些服务器软件提供了完整的 MQTT 协议实现,并且通常提供了管理界面和监控功能

2、三个服务质量(QoS)级别

(1) QoS 0:至多一次传输
消息发布者将消息发送到服务器,但服务器不会对消息进行确认。消息将被发送一次,接收者不需做任何确认,消息可能会丢失或重复

(2)QoS 1:至少一次传输
消息发布者将消息发送到服务器,服务器将对消息进行确认。如果服务器未收到确认,则会重新发送消息。这确保消息至少会被接收一次,但可能会重复传输。

(3)QoS 2:只有一次传输(最高级)
提供最高级别的消息传递保证。消息发布者将消息发送到服务器,并且服务器会对消息进行确认。服务器还会确保消息只被传递一次。这意味着消息不会重复传输,也不会丢失

3、MQTT 协议的工作原理/ 发布、订阅的流程

(1)连接:客户端首先需要与MQTT代理服务器建立连接

(2)订阅:一旦连接建立客户端可订阅一个或多个主题(Topic),客户端可以指定主题的服务质量(QoS)级别

(3)发布:客户端向服务器发送消息,包括消息内容和主题。服务器将收到的消息后 传递给所有已经订阅了相关主题的订阅者

(4)接收消息:订阅了相关主题的客户端会收到服务器转发的消息。服务器会根据订阅者的QoS级别要求,确保消息按照指定的质量级别进行传递。

(5)取消订阅:客户端发送取消订阅请求

(6)断开连接:客户端发送断开连接请求

4、断线重连机制

(1)客户端断线时,MQTT 服务器会保留客户端的消息,直到客户端重新连接

(2)当客户端重新连接到 MQTT 服务器时,根据客户端的会话状态,客户端将会收到之前未分发的消息

(3)MQTT 协议中,客户端可以设置一个“clean session”标志。如果设置为 true,表示客户端重新连接时会清除之前的会话状态

(4)遗嘱消息机制,当客户端异常断线时,服务器可以向 该客户端订阅的主题的订阅者 通知其断线情况。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/786369
推荐阅读
相关标签
  

闽ICP备14008679号