2025年05月19日
上周工作回顾
中心服务平台:1.0.2 版本, 升级中间件。
- 目标: janus-gatewa 服务从 v1.2.2(2024年4月2日) 升级至 v1.3.1(2025月3月5日), 由于官方仅提供源代码, 因此需手动构建 Docker 镜像。emqx 服务从 v5.6(2024月3月) 升级至 v5.8.6(2025月2月)
- 进度:已完成 100% 达成预期目标。
中心服务平台:1.0.2 版本, 测试及自测发现的问题
- 目标: 测试及自测发现的问题
- 进度:已完成 100% 达成预期目标。
中心服务平台:1.0.2 版本, 服务端架构升级改造。
- 目标: 优化系统启动速度与内存占用效率, 缩减Docker镜像体积至最小化标准;HTTP/MQTT API接口性能提升:响应延迟降低, 并行处理能力增强。
- 进度:当前进度:12%(计划完成度:30%)
- 偏差分析:
- 中心服务平台 1.0.2 版本迭代中, 测试及自测问题修复耗时超出预期
- KH2248 项目 WEB 客户端新增需求开发及缺陷修复未预估到需投入额外资源
KH2248 项目:WEB 客户端, 新增功能、测试及自测发现的问题
- 目标: 新增功能、测试及自测发现的问题
- 进度:已完成 100% 非计划内目标。
日常协作事宜
以下为当前需协作完成的关键任务列表。姚海涛作为主要协助人员, 将全力配合各位同事, 保障项目高效推进。
APP 接口联调与文档优化
- 内容:协助郭工对 APP 的 HTTP API 和 MQTT 信令交互接口进行全面联调。采用专业测试工具与规范测试方法, 严格验证接口功能的正确性、数据传输的准确性与稳定性。同时, 系统梳理相关接口文档, 补充接口参数(如参数类型、取值范围、默认值等)、返回值格式(如数据结构、字段含义等)以及异常处理(如异常类型、错误码、处理方式等)的详细说明, 确保文档符合行业规范、逻辑清晰, 便于后续开发与测试人员参考使用。
KH2248 项目设备 WEB 前端定制开发技术支持
- 内容:为韦工在 KH2248 项目的设备 WEB 前端定制开发中提供全方位技术支持。针对开发过程中可能出现的页面布局合理性、交互效果流畅性、浏览器与设备兼容性等问题, 凭借专业知识和实践经验进行深入分析。与韦工保持高效沟通, 及时了解项目进展与问题反馈, 共同制定可行解决方案, 确保项目按时交付高质量前端页面。
设备对接接口联调与文档优化
- 内容:协助孙工在设备联调过程中, 运用先进的通信监测与数据验证工具, 全面检查设备与服务间的通信状况, 确保数据传输稳定、准确且无丢包。同时, 深度优化对接设备的 MQTT 信令交互接口文档, 详细记录调试经验、问题及解决方案, 为服务的平稳过渡和稳定运行提供坚实的文档支撑, 方便后续维护人员快速解决问题。
数证管理服务器对接接口联调与文档优化
- 内容:协助绍工对数证管理服务器的 HTTP API 和 MQTT 信令交互接口进行联调。运用数据验证算法和模拟测试场景, 严格测试前后端数据交互的准确性与完整性。使用网络监测与性能分析工具, 检查采集站与服务器间的通信和数据采集传输情况。全面优化对接接口文档, 补充联调细节, 如网络配置参数、数据采集频率、异常处理机制及问题解决方案, 确保系统功能完整、运行稳定, 为平台上线做好准备。
平台使用咨询、测试问题排查与文档优化
- 内容:协助王工为中心服务平台提供专业的使用咨询服务。针对用户在平台操作流程、功能使用及系统故障等方面的问题, 及时响应并提供准确、详细的解答与指导。在测试阶段, 利用专业技术和问题定位工具, 深度排查测试问题, 分析问题根源并制定解决方案。同时, 全面优化测试说明文档, 记录问题排查过程与解决方案, 为后续测试工作提供清晰有效的指导, 提升用户使用体验和平台满意度, 为平台优化升级提供支持。
本周工作计划
中心服务平台:1.0.2 版本, 服务端架构升级改造。
- 目标: 优化系统启动速度与内存占用效率, 缩减Docker镜像体积至最小化标准;HTTP/MQTT API接口性能提升:响应延迟降低, 并行处理能力增强。
- 预期进度:计划完成 50%。
中心服务平台:1.0.2 版本, WEB 客户端及服务端优化。
- 目标: 基于60台设备的压力测试结果, 制定并实施优化调整方案:完成整体优化工作的60%(含性能调优与稳定性提升)
- 预期进度:计划完成 50%。
本周工作进度
中心服务平台:1.0.2 版本, 服务端架构升级改造。
- 目标: 优化系统启动速度与内存占用效率, 缩减Docker镜像体积至最小化标准;HTTP/MQTT API接口性能提升:响应延迟降低, 并行处理能力增强。
- 当前进度:已完成50% | 计划完成 50%。
- 任务清单:
- 清理冗余代码:
- 移除穿透科技对接相关的数据库建表及服务端实现代码(已改用WebRTC方案)
- 优化设备数据存储方案:
- 停用原数据库存储设备快照及历史数据(电量/定位等)方案
- 后续将采用Elasticsearch/Manticore Search等分布式搜索引擎替代方案(应对数千级设备数据量)
- 中间件升级
apache/activemq-artemis从2.35.0升级为2.41.0-alpine: 有多项改进, 包括管理 API 增强、消息存储性能优化、高可用性提升、TLS 配置简化、新增 OAuth2 支持以及多个安全漏洞修复。Alpine 镜像进一步减小体积、优化 JVM 参数, 并更新至最新 Alpine Linux 3.18+ 基础系统。完整变更日志coturn/coturn从4.6.2升级为4.6.3-alpine: 主要修复了 STUN/TURN 协议实现中的安全漏洞(如 CVE-2023-48790 缓冲区溢出风险), 改进了证书验证逻辑, 增强了对 DTLS 和 TLS 1.3 的支持稳定性, 并优化了 Alpine 环境下的资源占用。此外, 更新了 Alpine 基础镜像至 3.18+, 提升了容器安全性与性能。完整变更日志nginx从1.26.1-alpine升级为1.28.0-alpine: 核心模块支持了 HTTP/3 的 early data 特性;HTTP 映射模块新增了 map_hash_max_size 和 map_hash_bucket_size 指令用于优化哈希表性能;Stream 模块新增 udp_stream 指令以支持 UDP 流处理;更新了 PCRE2 库至 10.44 版本以提升正则表达式处理能力;修复了若干 HTTP/2 和 HTTP/3 相关的稳定性问题, 包括帧处理和连接管理方面的缺陷;同时 Alpine 基础镜像的更新也带来了系统依赖组件的安全修复和性能优化。生产环境升级前建议在测试环境验证应用兼容性。bitnami/redis从7.2.5升级为7.4.3: Redis 内核升级至 7.4.3 版本, 带来了新的 JSON.GET 和 JSON.SET 命令以增强 JSON 数据处理能力;优化了内存管理机制, 减少了大键值对操作时的内存碎片;改进了 RDB 和 AOF 持久化的性能, 特别是在处理大量写入操作时;新增了 CLIENT UNBLOCK 命令用于更灵活地管理阻塞客户端;修复了潜在的数据同步延迟问题和 Lua 脚本执行的边缘情况;容器镜像层面优化了启动脚本, 增强了与 Kubernetes 和 Helm 的集成稳定性;同时更新了底层依赖包以修复安全漏洞, 提升了容器的安全性。
- 清理冗余代码:
移除穿透科技对接相关的数据库建表及服务端实现代码, 以下为删表部分
DROP TABLE IF EXISTS device_forwarding_server CASCADE;
DROP TABLE IF EXISTS device_forwarding_server_data_acquisition_device CASCADE;
DROP TABLE IF EXISTS device_forwarding_server_model CASCADE;
DROP TABLE IF EXISTS device_p2p_server CASCADE;
DROP TABLE IF EXISTS device_p2p_server_data_acquisition_device CASCADE;
DROP TABLE IF EXISTS device_p2p_server_data_acquisition_server CASCADE;
DROP TABLE IF EXISTS device_p2p_server_forwarding_server CASCADE;
DROP TABLE IF EXISTS device_p2p_server_model CASCADE;中心服务平台:1.0.2 版本, WEB 客户端及服务端优化。
- 目标: 基于60台设备的压力测试结果, 制定并实施优化调整方案:完成整体优化工作的60%(含性能调优与稳定性提升)
- 当前进度:已完成 40% | 计划完成 50%。受多个非计划内事务的影响。
- 任务清单:
- 服务端
- 实测:GPS_INFO 中
valid == 1时, latitude 及 longitude 有效。修改服务端逻辑, 缓存更多有效定位数据(仅判 latitude 及 longitude 大于 0, 忽略 valid 判断)。 - 转发服务器配置原存储于服务端程序的配置文件中。为实现服务端运行时的动态配置, 现对配置数据的查询顺序进行调整。调整后, 系统将按照以下顺序依次查询配置, 一旦查询到有效配置, 便会停止后续查询流程:
- 从数据库中查询当前设备号对应的 STUN、TURN 配置。
- 若上一步未找到有效配置, 从数据库中查询当前租户的 STUN、TURN 配置。
- 若仍未找到有效配置, 从数据库中查询全局的 STUN、TURN 配置。
- 若上述步骤均未找到有效配置, 从配置文件中获取全局的 STUN、TURN 配置。
- 此前, 转发 Janus 交互信令时所使用的 Janus 编号固定为
janus-1。为实现服务端运行时的动态配置, 现对配置数据的查询顺序进行调整。调整后, 系统将按照以下顺序依次查询配置, 一旦查询到有效配置, 便会停止后续查询流程:- 从数据库中查询当前设备号对应的 JANUS 配置。
- 若上一步未找到有效配置, 从数据库中查询当前租户的 JANUS 配置。
- 若仍未找到有效配置, 从数据库中查询全局的 JANUS 配置。
- 若上述步骤均未找到有效配置, 返回
janus-1。
- IOT 在线状态接口处理:本部分工作聚焦于记录仪设备中
mqtt_client的在线状态管理。- 优化
emqx的 mqtt 客户端上线与离线通知的原有代码。在原有将设备上webrtc程序在线状态存入缓存的基础上, 新增对mqtt_client在线状态变更的维护, 并同步存入缓存。 - 当多个用于与记录仪设备
mqtt_client程序交互的 MQTT 接口被调用时, 及时将mqtt_client的在线状态更新为“在线”, 并保存至缓存。 - MQTT 接口支持批量查询多个设备的
mqtt_client在线状态。 - 在多个 http 接口返回的信息中, 新增
iot在线状态字段, 以更全面地呈现设备状态。
- 优化
- IOT 及 webrtc 版本号接口处理:此部分工作围绕记录仪设备中
mqtt_client和webrtc上报的版本号展开。- MQTT 接口负责接收记录仪设备
mqtt_client和webrtc程序上报的内容(不限于版本号), 并将其存入缓存, 以满足未来扩展需求。 - MQTT 接口支持批量查询多个设备
mqtt_client和webrtc的相关信息(不限于版本号), 只要设备上报的内容均可查询。
- MQTT 接口负责接收记录仪设备
- 实测:GPS_INFO 中
- Web 客户端
- 实测:GPS_INFO 中
valid == 1时, latitude 及 longitude 有效。修改 Web 客户端获取 GPS_INFO 后的逻辑(仅判 latitude 及 longitude 大于 0, 忽略 valid 判断) - 修复
Device running information中的定位显示问题。 - 统一多处定位显示格式, 使其与视频中的定位格式保持一致。
- 调整页面色彩, 使其与之前版本相近。
- 将多播界面的对齐方式默认值从 “end” 改为 “start”。
- 解决新版本上线后需手动刷新页面以更新静态文件缓存的问题:
- 在页面的 HTTP 元信息(HTTP Meta)中, 通过
http-equiv属性添加强制不缓存的设置。 - 在所有跳转的 HTTP URL 处添加
build_time参数, 参数值为当前 Web 项目编译打包的时间。
- 在页面的 HTTP 元信息(HTTP Meta)中, 通过
- 已将登录界面的背景图更换为通过 AI 生成的图片。
- MQTT 客户端优化:配置
reconnectPeriod: 5000以实现自动重连功能, 即每 5000 毫秒尝试重连一次;设置keepalive: 30, 借助 MQTT 协议自带的心跳机制, 客户端将自动每 30 秒发送一次 PINGREQ 消息, 以维持连接稳定性。 - 优化直播及多屏直播界面中设备列表的定位图标显示逻辑:
- 若设备定位信息有效, 将根据设备的
mqtt_client程序在线状态显示不同颜色的定位图标。定位信息源于服务端提供的 GPS_INFO 数据, 当设备的mqtt_client程序处于“在线”状态时, 显示绿色定位图标;若为“离线”状态, 则显示红色定位图标。 - 若设备定位信息无效, 不显示定位图标。
- 若设备定位信息有效, 将根据设备的
- 对
Device running information界面进行改进, 旨在排查因设备端程序版本未更新引发的异常问题, 如切换网络后 MQTT 连接未自动重连、WebRTC 连接失败等。- 新增
mqtt_client程序版本号字段, 用于显示设备的mqtt_client程序版本信息, 该字段仅在切换到高级模式时显示。 - 增设
webrtc程序版本号字段, 用于展示设备的webrtc程序版本信息, 该字段同样仅在切换到高级模式时显示。
- 新增
- 实测:GPS_INFO 中
- 服务端
KH2248 项目:WEB 客户端, 新增功能、测试及自测发现的问题
- 目标: 新增功能、测试及自测发现的问题
- 当前进度:已完成 100%, 非计划内事务
- 任务清单:
- 韦工反馈的问题:
- 发现右上方下拉菜单图标存在点击异常问题, 经排查, 该图标在 Chrome 浏览器中功能正常, 但在部分 Edge 浏览器中无法点击。
- 第三方库升级
- @iconify/json ^2.2.335 → ^2.2.340
- @iconify/react ^2.2.335 → ^2.2.340
- @types/leaflet ^1.9.17 → ^1.9.18
- @types/node ^22.15.14 → ^22.15.21
- @types/qs ^6.9.18 → ^6.14.0
- @types/react ^19.1.3 → ^19.1.5
- @types/react-dom ^19.1.3 → ^19.1.5
- @unocss/preset-icons ^66.1.0 → ^66.1.2
- @unocss/preset-uno ^66.1.0 → ^66.1.2
- @vitejs/plugin-react ^4.4.1 → ^4.5.0
- ahooks ^3.8.4 → ^3.8.5
- antd ^5.24.9 → ^5.25.2
- i18next ^25.1.1 → ^25.2.0
- react-i18next ^15.5.1 → ^15.5.2
- react-router ^7.5.3 → ^7.6.0
- react-router-dom ^7.5.3 → ^7.6.0
- rollup ^4.40.2 → ^4.41.0
- terser ^5.39.0 → ^5.39.2
- unocss ^66.1.0 → ^66.1.2
- 韦工反馈的问题:
其它
- 目标:记录日常耗时的杂项工作、协作事项,以及必要的沟通、讨论等隐性事务。
- 当前进度:已完成 100%, 非计划内事务
- 任务清单:
- 解决
ext-doc.netbodycamera.com访问报错问题:原访问方式通过 zerotier 构建的 VPN 网络, 将国外服务器的 nginx 代理至深圳公司内网 192.168.0.76:82 的 nginx 服务。但测试发现两边相互 ping 的丢包率高达 98%, 此为报错主因。处理方案是直接将静态文件上传至国外服务器的/var/lib/es-dev-server-data/es-dev-server-nginx/ext-doc目录, 并修改 nginx 配置使用该目录静态文件。经测试, 访问已恢复正常, 且因少了代理链路, 速度比之前快很多。 - 解决内部文档网站访问报错问题:
weekly-report.netbodycamera.com、int-doc.netbodycamera.com和redmine.netbodycamera.com均出现访问报错, 原因与上述相同。考虑到这些文件是内部文档, 不对外公开, 放置在国外服务器上不安全。利用 frp 的 stcp 方式处理, 官网文档链接:https://gofrp.org/zh-cn/docs/examples/stcp/。
- 解决
Last updated on