Skip to Content

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. 中心服务平台 1.0.2 版本迭代中, 测试及自测问题修复耗时超出预期
    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-artemis2.35.0 升级为 2.41.0-alpine: 有多项改进, 包括管理 API 增强、消息存储性能优化、高可用性提升、TLS 配置简化、新增 OAuth2 支持以及多个安全漏洞修复。Alpine 镜像进一步减小体积、优化 JVM 参数, 并更新至最新 Alpine Linux 3.18+ 基础系统。完整变更日志 
      • coturn/coturn4.6.2 升级为 4.6.3-alpine: 主要修复了 STUN/TURN 协议实现中的安全漏洞(如 CVE-2023-48790 缓冲区溢出风险), 改进了证书验证逻辑, 增强了对 DTLS 和 TLS 1.3 的支持稳定性, 并优化了 Alpine 环境下的资源占用。此外, 更新了 Alpine 基础镜像至 3.18+, 提升了容器安全性与性能。完整变更日志 
      • nginx1.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/redis7.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_clientwebrtc 上报的版本号展开。
        • MQTT 接口负责接收记录仪设备 mqtt_clientwebrtc 程序上报的内容(不限于版本号), 并将其存入缓存, 以满足未来扩展需求。
        • MQTT 接口支持批量查询多个设备 mqtt_clientwebrtc 的相关信息(不限于版本号), 只要设备上报的内容均可查询。
    • 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 项目编译打包的时间。
      • 已将登录界面的背景图更换为通过 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 程序版本信息, 该字段同样仅在切换到高级模式时显示。

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.comint-doc.netbodycamera.comredmine.netbodycamera.com 均出现访问报错, 原因与上述相同。考虑到这些文件是内部文档, 不对外公开, 放置在国外服务器上不安全。利用 frp 的 stcp 方式处理, 官网文档链接:https://gofrp.org/zh-cn/docs/examples/stcp/
Last updated on