1.9 KiB
1.9 KiB
问题处理文档
2026-06-10
#1 libmms_m RCB 订阅编号硬编码
问题:mms_m_icd_report_init() 中硬编码 if(0 == rpt_no.compare("01")),只订阅编号为 "01" 的 RCB,其他编号被丢弃,无法按需灵活订阅多个 RCB 实例。
需求:
- 灵活可配置订阅的控制块编号
- libmms_m 提供接口,由 libiec61850m 传入
- 可传入一个或多个编号,不传默认
"01" - 无效数据打印错误并返回失败
处理计划:RCB订阅编号可配置化
状态:✅ 已完成
涉及文件:myMms_m.h, mms_m.h, mms_m.cpp, iec61850m.cpp
#2 libweb_server 模块缺陷修复
问题:WebSocket 服务端模块存在 10 个缺陷,含严重级别(单客户端、多线程竞态、悬空指针、non-null-terminated UB)和高危/中等级别(调试 printf、SBO 阻塞、LOG 格式化缺失等)。
需求:
- 兼容多个 WebSocket 客户端同时连接
- 完善断连处理
- 多线程安全保护
- 修复 UB 和格式化问题
- 增量推送优化(仅变化时发送)
处理计划:libweb_server模块分析
状态:✅ 已完成
涉及文件:web_server.cpp, ws_method.cpp
#3 libweb_server 多连接资源共享冲突
问题:支持多客户端后,所有连接共享同一套全局信号资源(g_ws_out_signals 等),一个客户端的 add/del 操作会影响其他客户端的数据推送。
需求:
- 每个连接独立的信号资源(per-connection session)
- 连接建立时自动开辟资源,断开时自动释放
ws_task()按 session 独立构建 JSON 推送到对应连接
处理计划:libweb_server模块分析
状态:✅ 已完成
涉及文件:ws_method.h, ws_method.cpp, web_server.cpp