项目简介
本项目是一个高性能、高稳定性的跨平台MQTT客户端,基于标准的BSD socket API开发。它支持在嵌入式设备(如FreeRTOS、LiteOS、RT - Thread、TencentOS tiny)、Linux、Windows、Mac等多个平台上运行。项目提供简洁的API接口,能在极少资源下实现QOS2的服务质量,还无缝集成了mbedtls加密库,保障网络传输安全。
项目的主要特性和功能
- 极高的稳定性:严格遵循MQTT协议标准,支持掉线重连、丢包重发,经大数据量和高频测试表现稳定。
- 轻量级:不使用mbedtls时,占用资源极少,适合资源受限的嵌入式设备。
- 支持mbedtls加密传输:提供安全网络传输,API接口固定,兼容加密与非加密传输。
- 多客户端支持:支持多个客户端同时运行,一个设备可连接多个服务器。
- 同步与异步处理:应用程序无需阻塞等待,提高CPU利用率。
- 拦截器配置:支持拦截器功能,灵活处理来自服务器的主题和数据。
- 在线代码生成工具:提供在线配置工具,简化代码生成过程。
- 多功能参数配置:支持重连时间间隔、心跳周期、最大订阅数量等参数配置,满足不同开发环境需求。
- 自动重新订阅主题:自动重连后,确保主题不会丢失。
- 支持主题通配符:支持
“#”
和“+”
通配符,方便主题管理。 - 保活机制:内部实现保活处理机制,用户无需关心心跳报文处理。
- 跨平台支持:支持Linux、TencentOS tiny、FreeRTOS、RT - Thread等多个平台。
安装使用步骤
1. 安装依赖
在Linux平台上,首先需要安装cmake
和g++
:
bash
sudo apt-get install cmake g++
2. 编译项目
运行以下命令进行编译:
bash
./build.sh
编译完成后,生成的可执行文件将位于./build/bin/
目录下。
3. 运行测试程序
可以直接运行生成的可执行文件,例如:
bash
./build/bin/emqx
4. 编译成动态库
如果需要将项目编译成动态库,可以运行以下命令:
bash
./make-libmqttclient.sh
生成的动态库文件libmqttclient.so
将位于./libmqttclient/lib
目录下,并安装到系统的/usr/lib
目录中。相关头文件已拷贝到./libmqttclient/include
目录下,可以直接在项目中使用。
5. 交叉编译
如果使用交叉编译器,需设置环境变量并确保动态库文件被拷贝到目标系统的/usr/lib
目录下:
bash
export CROSS_COMPILE=arm-linux-gnueabihf-
6. 卸载动态库
如需卸载动态库,可以运行以下命令:
bash
./make-libmqttclient.sh remove
更多详细信息请参考项目文档: - MQTT协议简介 - MQTT协议通信过程 - mqttclient代码生成工具 - mqttclient配置及裁剪工具 - mqttclient设计与实现方式 - mqttclient连接到百度天工物接入 - mqttclient连接到OneNET云平台 - mqttclient连接到阿里云物联网平台
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】