项目简介
本项目是一个高性能、高稳定性的跨平台MQTT客户端,基于标准的BSD socket API开发。它可在嵌入式设备(如FreeRTOS、LiteOS、RT - Thread、TencentOS tiny)、Linux、Windows和Mac等平台上运行。该客户端API接口极简,能用极少资源实现QOS2服务质量,还集成了mbedtls加密库保障数据传输安全。
项目的主要特性和功能
- 高稳定性:严格遵循MQTT协议标准,支持掉线重连、丢包重发,确保大数据量和高频通信场景下稳定。
- 轻量级:代码简洁,资源占用少,适合嵌入式设备。
- 支持mbedtls加密传输:提供安全网络传输,无需关心加密细节。
- 多客户端支持:支持多个客户端同时运行,一个设备可连接多个服务器。
- 同步与异步处理:支持同步和异步操作,避免阻塞等待,提升CPU利用率。
- 拦截器配置:支持拦截器配置,灵活处理系统主题和数据信息。
- 在线代码生成工具:提供在线代码生成工具,简化配置和代码生成过程。
- 多功能参数配置:支持多种参数配置和裁剪,满足不同开发环境需求。
- 自动重连与主题重订阅:支持自动重连和主题重订阅,确保连接稳定。
- 主题通配符支持:支持MQTT主题通配符
#
和+
。 - 分层设计:采用分层设计,代码结构清晰,易于维护和扩展。
安装使用步骤
假设用户已经下载了本项目的源码文件,可按以下步骤操作:
1. 安装依赖:
确保系统中已安装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
目录中。
5. 交叉编译:
如果使用交叉编译器,请设置环境变量并确保动态库文件被正确复制到目标系统的/usr/lib
目录中:
bash
export CROSS_COMPILE=arm-linux-gnueabihf-
6. 卸载动态库:
如果需要卸载动态库,运行以下命令:
bash
./make-libmqttclient.sh remove
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】