【 正点原子瑞芯微RV1126测评】8 mqtt原理与客户端程序分析
基本概念和特点
MQTT是一种基于发布/订阅模式的轻量级通讯协议,它设计用于在资源受限的环境中,如物联网设备、小型设备、移动应用等,提供可靠的消息服务。
1,MQTT的主要特点:
2,轻量级。MQTT设计用于在有限的带宽和计算能力下运行,因此它具有较小的数据包大小和开销。
3,发布/订阅模式。MQTT允许发布者和订阅者之间进行一对多的消息传递,这有助于简化应用程序之间的耦合。
4,消息代理。MQTT使用消息代理(Broker)来中转消息,确保消息在发布者和订阅者之间可靠地传递。
5支持多种服务质量。MQTT提供至多一次(QoS 0)、至少一次(QoS 1)和只一次(QoS 2)的服务质量级别,以适应不同的网络环境和消息重要程度。
6,支持保留消息和遗嘱消息。MQTT允许保留最新消息,并在客户端异常断开连接时发送遗嘱消息,以通知其他订阅者
7,基于TCP/IP。建立在TCP/IP协议之上,确保了其在各种网络环境中的稳定运行
协议内容
客户端服务器端
订阅消息broker代理
发布消息
由上图看到:
- mqtt必须要由mqtt broker代理服务器,这点是必须的!
- 客户端不是点对点通信的,都必须经过broker转发处理。
引入的概念有
1,客户端 client
2,服务器端 broker
3,客户端和客户端断开与连接
- 因为每个服务器可以连很多的客户端,为了不冲突,必须要有clientid
4,客户端用户名和密码
5,客户端发消息出去叫发布消息
6,客户端接收别人的消息叫订阅消息
7,为了控制发布和订阅消息的质量,也就是可不可靠就把消息分为Qos0 QoS1 QoS2
8,设备离线后其他设备要去了解上次这个设备在离线前的情况,就引入了遗嘱消息。
9,当然所有这些都离不开消息,所以消息是蛮重要的。
消息有主题,和消息体
程序分析
MQTTClient.h中定义了我们要使用的结构体和函数的原型。
并且后面还附了个例子(注释掉了)下面来读一读它
板子的消息发布和回调函数处理接收函数部分
发布消息
好,大概情况就这样。谢谢大家
本文来自论坛,点击查看完整帖子内容。