ryancw 3 месяцев назад
Родитель
Сommit
0485caac98
2 измененных файлов с 71 добавлено и 18 удалено
  1. 58 8
      README.md
  2. 13 10
      RyanMqtt2.0发布说明及迁移指南.md

+ 58 - 8
README.md

@@ -24,10 +24,12 @@
 
 
 - ✅ **AI 辅助开发与审查**,结合  **[coderabbitai](https://www.coderabbit.ai)** 与 **[Copilot](https://github.com/features/copilot)** ,在编码与代码审查阶段持续优化代码质量,构建多层安全防线
 - ✅ **AI 辅助开发与审查**,结合  **[coderabbitai](https://www.coderabbit.ai)** 与 **[Copilot](https://github.com/features/copilot)** ,在编码与代码审查阶段持续优化代码质量,构建多层安全防线
 
 
-- ✅ **8 大类专项测试用例**,覆盖广泛场景,全链路内存泄漏检测,强化稳定性与可靠性
+- ✅ **11 大类专项测试用例**,覆盖广泛场景,全链路内存泄漏检测,强化稳定性与可靠性
 
 
 - ✅ **支持多客户端实例**,满足复杂业务场景下的多连接需求
 - ✅ **支持多客户端实例**,满足复杂业务场景下的多连接需求
 
 
+- ✅ **支持弱网/丢包严重环境**,保障连接稳定与消息可靠传输
+
 - ✅ **全等级 QoS 支持(QoS0/1/2)**,并提供**用户可控的消息丢弃策略**,防止 QoS1/QoS2 重传导致内存无限堆积
 - ✅ **全等级 QoS 支持(QoS0/1/2)**,并提供**用户可控的消息丢弃策略**,防止 QoS1/QoS2 重传导致内存无限堆积
 
 
 - ✅ **完整的主题匹配与通配符支持**,主题层级分隔符 `/`、通配符 `#`/`+`,并正确处理以 `$` 开头的系统主题
 - ✅ **完整的主题匹配与通配符支持**,主题层级分隔符 `/`、通配符 `#`/`+`,并正确处理以 `$` 开头的系统主题
@@ -39,9 +41,8 @@
 - ✅ **丰富的参数与事件回调接口**,丰富的参数配置与事件回调接口,满足绝大多数实际项目需求(**欢迎提出新需求**)
 - ✅ **丰富的参数与事件回调接口**,丰富的参数配置与事件回调接口,满足绝大多数实际项目需求(**欢迎提出新需求**)
 
 
 - ✅**高性能与高并发能力**,在 Linux 环境下稳定支撑 20 个并发发送线程,每线程连续发送 1000 条 QoS1/QoS2 消息,零丢包、零异常
 - ✅**高性能与高并发能力**,在 Linux 环境下稳定支撑 20 个并发发送线程,每线程连续发送 1000 条 QoS1/QoS2 消息,零丢包、零异常
-  > ⚠️ 实际性能受单片机内存大小及网络硬件能力影响
-
-- ✅ **复杂线程环境下稳定运行**,已在多个商业项目中长期验证
+  
+- ✅ **复杂线程环境下稳定运行**,已在公司多个商业项目中长期验证
 
 
 - ✅ **跨平台设计**,仅需实现少量平台接口即可快速移植
 - ✅ **跨平台设计**,仅需实现少量平台接口即可快速移植
 
 
@@ -65,7 +66,56 @@ RyanMqtt 设计时参考了[mqttclient](https://github.com/jiejieTop/mqttclient)
 | **系统服务管理模块** | 提供会话管理、事件调度、通配符匹配、消息链表管理等基础服务   |
 | **系统服务管理模块** | 提供会话管理、事件调度、通配符匹配、消息链表管理等基础服务   |
 | **用户应用模块**     | 向用户提供完整的 API 接口,包括客户端生命周期管理、连接控制、发布/订阅、事件注册等 |
 | **用户应用模块**     | 向用户提供完整的 API 接口,包括客户端生命周期管理、连接控制、发布/订阅、事件注册等 |
 
 
-### 3、平台接口
+### 3、测试体系
+
+**11 大类专项测试用例**,覆盖从基础功能到极限压力场景的全流程验证:
+
+| 测试类别                                                  | 测试目标                                                     |
+| --------------------------------------------------------- | ------------------------------------------------------------ |
+| 1. 客户端销毁压力测试                                     | 验证资源释放的幂等性与完整性                                 |
+| 2. 心跳与超时处理                                         | Keep-Alive、PINGREQ/RESP 机制验证                            |
+| 3. 消息链路完整性(QoS 0/1/2)                            | QoS 0/1/2 消息端到端可靠性验证                               |
+| 4. 自动/手动重连机制                                      | 状态机正确性与连接恢复能力                                   |
+| 5. 批量/重复订阅一致性                                    | 订阅表一致性、内存安全、去重逻辑                             |
+| 6. 多客户端高并发                                         | 20+ 客户端并发运行稳定性                                     |
+| 7. 单客户端多线程共享(20 线程 × 各 1000 条 QoS1/2 消息) | 锁机制、数据一致性、竞态防护                                 |
+| 8. 公共API参数校验                                        | 提升接口健壮性与可用性                                       |
+| 9. 随机网络故障内存回收检测                               | 验证异常网络情况下的内存释放,提升接口健壮性与可用性         |
+| 10. 随机网络故障弱网丢包测试                              | 在弱网及高丢包环境下,完成 QOS 全等级消息完整性与内存回收验证 |
+| 11. 随机内存故障,内存回收测试                            | 验证内存异常情况下的资源释放,提升接口健壮性与可用性         |
+
+#### 📊 测试覆盖范围
+
+- **基础连接**:100 次循环连接/断开,混合 QoS 消息与订阅
+- **消息流控**:连续发送 QoS0/1/2 等级 1000 条消息,混合 QoS 压力测试
+- **订阅管理**:批量、大量、重复、混合 QoS 订阅与取消
+- **并发压测:**
+  - 单客户端 20 线程 × 各 1000 条 QoS1/2 消息
+  - 多客户端 20 并发实例进行双向发布/订阅
+- **可靠性**:长连接、弱网、随机网络故障、随机内存故障、Keep-Alive、重连机制验证
+- **资源安全**:全链路内存泄漏、句柄泄漏检测
+
+### 4、代码质量与规范
+
+#### ✅ 工具链全面集成
+
+| 工具                                                         | 用途                                                         |
+| ------------------------------------------------------------ | ------------------------------------------------------------ |
+| **[Sanitizer](https://clang.llvm.org/docs/index.html#sanitizers)** | 运行时捕获内存与线程安全问题                                 |
+| **[clang-tidy](https://clang.llvm.org/extra/clang-tidy/#clang-tidy)** | 静态分析潜在缺陷(空指针、资源泄漏等)                       |
+| **[Cppcheck](https://cppcheck.sourceforge.io/)**             | 深度扫描内存与资源问题                                       |
+| **[ClangFormat](https://clang.llvm.org/docs/ClangFormat.html)** | 统一代码风格                                                 |
+| **编译器警告**                                               | `-Wall -Wextra`(默认)、`-Weffc++`/`-Weverything`(Clang 可选,CI 强化时开启) |
+
+#### ✅ 检查重点覆盖
+
+- 内存安全:杜绝泄漏、越界、悬空指针
+- 性能优化:减少冗余拷贝与低效算法
+- 可读性:命名规范、注释完整、逻辑清晰
+
+> ✅ **成果**:实现接近语法级"**零缺陷**",长期维护成本大幅降低
+
+### 5、平台接口
 
 
 _RyanMqtt 依赖于用户实现以下三类平台接口,以确保在不同系统中正常运行。_
 _RyanMqtt 依赖于用户实现以下三类平台接口,以确保在不同系统中正常运行。_
 
 
@@ -117,7 +167,7 @@ _RyanMqtt 依靠函数生成毫秒时间戳,用于计算持续时间和超时
 | ---------------- | ---------------------------- |
 | ---------------- | ---------------------------- |
 | platformUptimeMs | 返回系统启动以来的毫秒时间戳 |
 | platformUptimeMs | 返回系统启动以来的毫秒时间戳 |
 
 
-### 4、示例
+### 6、示例
 
 
 #### RT-Thread 平台
 #### RT-Thread 平台
 
 
@@ -147,11 +197,11 @@ _RyanMqtt 依靠函数生成毫秒时间戳,用于计算持续时间和超时
 
 
 - 接口示例请参考 platform/linux 文件夹,请根据平台差异进行修改
 - 接口示例请参考 platform/linux 文件夹,请根据平台差异进行修改
 
 
-### 5、依赖
+### 7、依赖
 
 
 本项目 **无外部第三方库依赖**,仅依赖用户实现的平台接口。
 本项目 **无外部第三方库依赖**,仅依赖用户实现的平台接口。
 
 
-### 6、免责声明
+### 8、免责声明
 
 
 > ⚠️ **重要提示**
 > ⚠️ **重要提示**
 
 

+ 13 - 10
RyanMqtt2.0发布说明及迁移指南.md

@@ -73,16 +73,19 @@ uint32_t platformUptimeMs(void);
 
 
 新增 **8 大类专项测试用例**,覆盖从基础功能到极限压力场景的全流程验证:
 新增 **8 大类专项测试用例**,覆盖从基础功能到极限压力场景的全流程验证:
 
 
-| 测试类别                                                  | 测试目标                          |
-| --------------------------------------------------------- | --------------------------------- |
-| 1. 客户端销毁压力测试                                     | 验证资源释放的幂等性与完整性      |
-| 2. 心跳与超时处理                                         | Keep-Alive、PINGREQ/RESP 机制验证 |
-| 3. 消息链路完整性(QoS 0/1/2)                            | QoS 0/1/2 消息端到端可靠性验证    |
-| 4. 自动/手动重连机制                                      | 状态机正确性与连接恢复能力        |
-| 5. 批量/重复订阅一致性                                    | 订阅表一致性、内存安全、去重逻辑  |
-| 6. 多客户端高并发                                         | 20+ 客户端并发运行稳定性          |
-| 7. 单客户端多线程共享(20 线程 × 各 1000 条 QoS1/2 消息) | 锁机制、数据一致性、竞态防护      |
-| 8. 公共API参数校验                                        | 提升接口健壮性与可用性            |
+| 测试类别                                                  | 测试目标                                                     |
+| --------------------------------------------------------- | ------------------------------------------------------------ |
+| 1. 客户端销毁压力测试                                     | 验证资源释放的幂等性与完整性                                 |
+| 2. 心跳与超时处理                                         | Keep-Alive、PINGREQ/RESP 机制验证                            |
+| 3. 消息链路完整性(QoS 0/1/2)                            | QoS 0/1/2 消息端到端可靠性验证                               |
+| 4. 自动/手动重连机制                                      | 状态机正确性与连接恢复能力                                   |
+| 5. 批量/重复订阅一致性                                    | 订阅表一致性、内存安全、去重逻辑                             |
+| 6. 多客户端高并发                                         | 20+ 客户端并发运行稳定性                                     |
+| 7. 单客户端多线程共享(20 线程 × 各 1000 条 QoS1/2 消息) | 锁机制、数据一致性、竞态防护                                 |
+| 8. 公共API参数校验                                        | 提升接口健壮性与可用性                                       |
+| 9. 随机网络故障内存回收检测                               | 验证异常网络情况下的内存释放,提升接口健壮性与可用性         |
+| 10. 随机网络故障弱网丢包测试                              | 在弱网及高丢包环境下,完成 QOS 全等级消息完整性与内存回收验证 |
+| 11. 随机内存故障,内存回收测试                            | 验证内存异常情况下的资源释放,提升接口健壮性与可用性         |
 
 
 #### 📊 测试覆盖范围
 #### 📊 测试覆盖范围