| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: 修复 MQTT Broker 多项协议与状态管理缺陷并补充测试 高优先级修复: - v5 PUBLISH 编解码字段顺序改为 Topic→PacketID→Properties(符合 MQTT 5.0 规范) - max_packet_size 配置真正传入 v3/v5 解码路径(新增 decode_packet_with_limit) - 保留消息下发 QoS 取 min(订阅 QoS, 保留 QoS),并正确分配 packet_id - 保留消息处理统一收敛到后台路由器(API 发布持久化 + 空 payload 删除) - QoS2 下行发送时插入 pending_pubrecs 跟踪,收到 PUBREC 时移除 - WS 桥(/mqtt)解析并存储遗嘱消息,异常断开正常投递 中优先级修复: - clean_session 重连时清空旧会话订阅(MQTT-3.1.2-6) - 同 client_id 抢占时通过连接代数断开旧连接(MQTT-3.1.4-2) - 下行 PUBLISH 按订阅者协议版本编码(v5 客户端不再收到 v3 帧) - /api/publish 与 /ws/subscribe 增加 ACL 检查 - disconnect_client API 真正断开 TCP(pending_kicks 机制) - shutdown 通过 oneshot ack 等待持久化 writer 落盘 健壮性修复: - 离线消息队列上限 1000 条(FIFO 驱逐并同步持久化) - packet_id 改为 per-client 分配(client_packet_ids) - 删除 is_stale 死代码 - API 发布不再重复计数 messages_published - 离线消息 QoS 取 min(发布 QoS, 订阅 QoS) 其他: - 清理 broker 数据库中的测试残留数据(保留消息、会话、订阅等表已清空) - 新增 test/verify_bugs.py(5 项回归测试) - 新增 test/verify_all_fixes.py(7 项修复验证) Co-Authored-By: AtomCode (deepseek-v4-flash) <noreply@atomgit.com> | 13 天前 | |
第一版提交 | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 13 天前 | ||
| 3 个月前 |