项目简介
本项目是一个高性能、高稳定性的跨平台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】