MQTT——全称Message Queuing Telemetry Transport消息队列遥测传输协议,是一种基于发布/订阅模式的轻量级通信协议。
你可以把它想象成一个邮局系统:
发布者(Publisher):
就像寄信的人,把消息发送到特定的“邮箱”(主题)。订阅者(Subscriber):
就像收信的人,他们事先告诉邮局(Broker)他们对哪些“邮箱”(主题)的信件感兴趣。消息代理(Broker):
就像邮局,负责接收发布者的消息,并根据订阅者的兴趣将消息分发给他们。
MQTT协议由IBM在1999年开发,现在是ISO标准(ISO/IEC 20922),适用于物联网(IoT)和机器对机器(M2M)通信。因其轻量、高效和可靠的特性,广泛应用于智能家居、环境监测、车联网、工业自动化等等领域。
举个例子:
近期推出的合宙AirTalk流量电话就是基于MQTT传输协议,通过语音流、数据流进行通信和控制。
一
MQTT核心库使用须知
合宙LuatOS的MQTT核心库专为嵌入式(如4G-Cat.1模组、Wi-Fi模组)设计,通过简洁高效的API,极大降低了开发门槛与周期,帮助开发者快速实现MQTT客户端等功能,可结合实际项目灵活应用。
最新API手册详见:
https://docs.openluat.com/osapi/core/mqtt/
▼ 使用须知 ▼
社群也时有新朋友问到版本支持等问题,大家在使用合宙MQTT核心库之前,请了解如下几点:
版本支持:
只支持MQTT 3.1.1,其他版本例如3.1或者5.0均不支持。通信方式:
只支持纯MQTT/MQTTS通信;
不支持mqtt over websocket;几个大前提:
本库基于TCP连接,支持加密TCP和非加密TCP;
任何通信失败都将断开连接,如果开启了自动重连,那么间隔N秒后会开始自动重连;
上行数据均为一次性的,没有缓存机制,更没有上行的重试/重发机制。
没有重发机制:
MQTT协议中规定了重发机制,但那是云端/服务器端才会实现的机制,模块端是没有的;
上行失败,唯一的可能性就是TCP连接出问题了,而TCP连接出问题的解决办法就是重连;
模块端不会保存任何上行数据,重连后也无法实现重发。
二
最新应用示例及实操教程
合宙提供了基于MQTT核心库的应用示例,源码开放;可参考合宙资料中心相应产品的实操教程快速上手。
最新源码下载及实操教程详见:
Air780EPM模组:
https://docs.openluat.com/air780epm/luatos/app/socket/mqtt/
Air8000工业引擎系列:
https://docs.openluat.com/air8000/luatos/app/socket/mqtt/
Air8101工业引擎系列:
https://docs.openluat.com/air8101/luatos/app/socket/mqtt/


今天的内容就分享到这里了,欢迎加技术交流群共同探讨。
更多开发资料,详见合宙资料中心:
—— docs.openluat.com




