|
|
пре 1 година | |
|---|---|---|
| .vscode | пре 2 година | |
| common | пре 1 година | |
| docs | пре 2 година | |
| example | пре 1 година | |
| mqttclient | пре 1 година | |
| pahoMqtt | пре 1 година | |
| platform | пре 1 година | |
| test | пре 1 година | |
| .gitignore | пре 2 година | |
| LICENSE | пре 3 година | |
| Makefile | пре 2 година | |
| README.md | пре 2 година | |
| SConscript | пре 3 година | |
| xmake.lua | пре 1 година |
使用遇到问题可以提 issue / RT-Thread 社区提问,谢谢。
RyanMqtt使用介绍和示例代码(一)
RyanMqtt QOS质量测试(二)
RyanMqtt 移植指南(三)
RyanMqtt 实现了 MQTT3.1.1 协议的客户端。此库针对资源受限的嵌入式设备进行了优化。
初衷:在使用RT-Thread时,没有非常合适的 mqtt 客户端。项目中 mqtt 又是非常核心的功能。参考 MQTT3.1.1 标准和项目需求设计的 mqtt 客户端,它拥有以下特点。
RyanMqtt 设计时参考了mqttclient、esp-mqtt、coreMQTT。
RyanMqtt 库希望应用程序为以下接口提供实现:
RyanMqtt 需要 RTOS 支持,必须实现如下接口才可以保证 mqtt 客户端的正常运行
| 函数名称 | 函数简介 |
|---|---|
| platformMemoryMalloc | 申请内存 |
| platformMemoryFree | 释放已申请内存 |
| platformPrint | 打印字符串 |
| platformDelay | 毫秒延时 |
| platformThreadInit | 初始化线程 |
| platformThreadStart | 开启线程 |
| platformThreadStop | 挂起线程 |
| platformThreadDestroy | 销毁线程 |
| platformMutexInit | 初始化互斥锁 |
| platformMutexLock | 获取互斥锁 |
| platformMutexUnLock | 释放互斥锁 |
| platformMutexDestroy | 销毁互斥锁 |
| platformCriticalInit | 初始化临界区 |
| platformCriticalEnter | 进入临界区 |
| platformCriticalExit | 退出临界区 |
| platformCriticalDestroy | 销毁临界区 |
RyanMqtt 依赖于底层传输接口 API,必须实现该接口 API 才能在网络上发送和接收数据包
MQTT 协议要求基础传输层能够提供有序的、可靠的、双向传输(从客户端到服务端 和从服务端到客户端)的字节流
| 函数名称 | 函数简介 |
|---|---|
| platformNetworkConnect | 根据 ip 和端口连接服务器 |
| platformNetworkRecvAsync | 非阻塞接收数据 |
| platformNetworkSendAsync | 非阻塞发送数据 |
| platformNetworkClose | 断开 mqtt 服务器连接 |
RyanMqtt 依靠函数生成毫秒时间戳,用于计算持续时间和超时,内部已经做了数值溢出处理
| 函数名称 | 函数简介 |
|---|---|
| platformUptimeMs | 自系统启动以来 ms 时间戳 |
接口示例请参考 platform/rtthread 文件夹
RyanMqtt 使用示例请参考 example 文件夹
需要使能 SAL 或者 LWIP,示例使用 socket 实现数据收发。
需要 MSH 组件,示例默认挂载到 MSH 组件
详细使用请参考 example,提供了一些测试接口和使用范例
暂无