项目简介
wolfMQTT是一个用C语言编写的MQTT客户端实现,专为嵌入式应用设计。它通过wolfSSL库支持SSL/TLS,从底层构建,具备多平台支持、节省空间和可扩展的特性,与wolfSSL集成以提供TLS支持。
项目的主要特性和功能
- 多平台支持:可在Mac、Linux、Unix、Windows、Arduino、Zephyr RTOS等多种平台上构建使用。
- TLS/SSL支持:借助wolfSSL库,为通信提供TLS支持,保障数据安全。
- 多协议版本支持:支持MQTT v3.1.1、MQTT v5.0以及MQTT - SN协议。
- 多种功能示例:包含客户端、简单独立客户端、非阻塞客户端、固件更新、Azure IoT Hub、AWS IoT、Watson IoT、MQTT - SN、多线程等示例,方便开发使用。
- 轻量级与高效:设计注重资源占用,适用于资源受限的嵌入式系统。
- 可扩展性:架构灵活,可自定义网络回调等功能。
- 多线程与非阻塞模式:支持多线程及非阻塞I/O,提升处理效率。
- 后量子支持:支持与后量子Mosquito MQTT代理通信,保障未来安全需求。
安装使用步骤
环境准备
确保已安装GCC编译器或适用于目标平台的C编译器,获取wolfMQTT库和wolfSSL库的源代码,并安装所有依赖项。
构建步骤
Mac/Linux/Unix
- 运行
./configure
(使用./configure --help
查看构建选项列表)。 - 运行
make
。 - 运行
sudo make install
。
Windows Visual Studio
- 打开
<wolfssl-root>/wolfssl64.sln
。 - 重新定位到你的Visual Studio版本。
- 选择
Debug DLL
或Release DLL
配置,并注意32位或64位架构。 - 构建wolfSSL解决方案。
- 将
wolfssl.lib
和wolfssl.dll
文件复制到<wolfmqtt-root>
。 - 打开
<wolfmqtt-root>/wolfmqtt.sln
解决方案。 - 确保选择与wolfSSL相同的架构。
- 若wolfssl根目录不同,可在项目设置中调整包含路径。
- 使用
wolfmqtt/vs_settings.h
配置Visual Studio构建设置。 - 构建wolfMQTT解决方案。
CMake
mkdir build
cd build
cmake .. -DWITH_WOLFSSL=/prefix/to/wolfssl/install/
cmake .. -DWITH_WOLFSSL_TREE=/path/to/wolfssl/
cmake --build .
vcpkg
cd vcpkg
./bootstrap-vcpkg.sh # 或Windows下使用bootstrap-vcpkg.bat
./vcpkg integrate install
./vcpkg install wolfmqtt
Arduino
见IDE/ARDUINO.README.md
。
MinGW
```sh export PATH="/opt/mingw-w32-bin_i686-darwin/bin:$PATH" export PREFIX=$PWD/build
cd wolfssl ./configure --host=i686 CC=i686-w64-mingw32-gcc LD=i686-w64-mingw32-ld CFLAGS="-DWIN32 -DMINGW -D_WIN32_WINNT=0x0600" LIBS="-lws2_32 -L$PREFIX/lib -lwolfssl" --prefix=$PREFIX make make install
cd ../wolfmqtt ./configure --host=i686 CC=i686-w64-mingw32-gcc LD=i686-w64-mingw32-ld CFLAGS="-DWIN32 -DMINGW -D_WIN32_WINNT=0x0600 -DBUILDING_WOLFMQTT -I$PREFIX/include" LDFLAGS="-lws2_32 -L$PREFIX/lib -lwolfssl" --prefix=$PREFIX --disable-examples make ```
Zephyr RTOS
见zephyr/README.md
。
运行示例程序
- 根据目标平台选择合适的示例程序,如
/examples/mqttclient/
等。 - 配置示例程序的命令行参数,可使用
-?
查看可用参数列表。 - 运行示例程序,查看输出结果。
清理
完成测试后,运行make clean
清除构建过程中生成的文件。
注意事项
- 示例程序可能需要额外依赖项,如wolfSSL库。
- 根据目标平台和构建选项,构建过程可能有所不同。
- 请参考项目文档或示例程序注释获取更多详细信息。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】