MQTT 是一个轻型协议,使用基于 TCP/IP 协议的发布/订阅消息转发模式,专门用于机器对机器 (M2M) 通信。
由于物联网的环境是非常特别的,所以MQTT遵循以下设计原则:
- 精简,不添加可有可无的功能。
- 发布/订阅(Pub/Sub)模式,方便消息在传感器之间传递。
- 允许用户动态创建主题,零运维成本。
- 把传输量降到最低以提高传输效率。
- 把低带宽、高延迟、不稳定的网络等因素考虑在内。
- 支持连续的会话控制。
- 理解客户端计算能力可能很低。
- 提供服务质量管理。
- 假设数据不可知,不强求传输数据的类型与格式,保持灵活性。
1. MQTT整体流程
MQTT 协议的中心是 MQTT 服务器或代理 (broker) ,支持发布程序和订阅程序进行访问,如下图所示
graph LR
发布者-->Broker
Broker-->订阅者
订阅者-->Broker
- 订阅者在连接上Broker之后,订阅想要收到消息的主题(local/test)
- 发布者通过主题(local/test),发送想要发送的内容(payload)
- Broker收到发布者发送的内容,根据主题转发到已经订阅了该主题的订阅者
- 订阅者收到主题(local/test)的内容,解析需要的数据
2. MQTT消息类型
MQTT拥有14种不同的消息类型:
CONNECT:客户端连接到MQTT代理
CONNACK:连接确认
PUBLISH:新发布消息
PUBACK:新发布消息确认,是QoS 1给PUBLISH消息的回复
PUBREC:QoS 2消息流的第一部分,表示消息发布已记录
PUBREL

最低0.47元/天 解锁文章
4040

被折叠的 条评论
为什么被折叠?



