Seetong · Report
🎯 Seetong 问题雷达 17:00 第 65 期
时间窗口:2026-07-23 09:00 ~ 17:00(8h)
TL;DR 核心要点
- 🔴 设备离线/掉线后无法预览(严重度 70 / 100,置信度 🟡 中)
- -102/-101 仍是 8h 内最大类,但属普遍网络问题,且 24h 内已分析过,本期跳过
- Harmony 音频爆麦/刺耳有 4 条反馈,但缺 Logan,3 维打分未过线
最近一个月 Top 问题
按严重度与复发期数排序,已把跨期同类反馈归集;负责人由问题代码锚点对应的 Git 提交历史(blame / 近期主要提交者)反查;数据窗口:最近 30 天(截至 2026-07-23)。
| # | 问题(严重度降序) | 严重度 | 平台 | 版本 | 负责人 | 问题原因 |
|---|---|---|---|---|---|---|
| 1 | Seetong 自建 API 集群大规模不可用(详细分析) 1 期 | 92 | Android | 8.1.2.4 / 8.3.12.5 | “maolin.zhang”、张威、唐胜 | Seetong 自建 API 服务集群(app-auth.seetong.com / app-api-cn.seetong.com 主+备 4 个 IP)在 2026-06-25 凌晨到 09:00+ 出现大规模不可用(TCP 443 握手超时 / SSL 失败),导致 Android 端 8.3.12.5 用户所有业务请求失败,App 弹出"请检查手机网络(-102)" |
| 2 | 设备离线/P2P 通道失败(5 条 8h) 1 期 | 90 | — | 8.2.1.3 / 8.3.10.2 / 8.3.12.5 | 唐胜、许源、张威 | 用户设备 lastHeartTime 自 2026-07-03 02:25 起完全停止(用户尝试断电重启无效),客户端 TPS_MSG_P2P_OFFLINE 反复触发导致离线提示循环,但设备侧的物理掉线才是真实根因 |
| 3 | 回放入口/状态映射异常:无存储能力设备仍露出回放入口 2 期 | 70 | Android | 1.1.0.9 / 8.3.12.5 / 8.1.2.4 | 唐胜、张威 | 回放入口与录像状态 UI 主要依赖 sdRecordStu/权限,但未同步校验 NO_LOCAL_STOARGE 与 SDCardState=0,导致无存储能力设备仍可能暴露回放预期或状态显示异常。 |
| 4 | 设备离线/掉线后无法预览 1 期 | 70 | Android · iOS | 1.1.1.6 / 8.2.2.1 / 8.3.13.3 | 唐胜、张威 | 设备预览链路在收到 TPS_MSG_P2P_OFFLINE 后直接走离线兜底分支,UI 进入“该设备不在线”,而自动恢复逻辑又被离线判断短路,导致用户感知为“掉线后无法再连上”。 |
| 5 | 录像回放缺失 — 无 SD 卡的设备被直接引导云存购买(产品设计问题) 1 期 | 65 | Android · iOS | 8.3.12.5 / 8.3.13.3 / 8.3.13.4 | 张威、唐胜、陈宝旺 | 无 SD 卡 + 未开通云存的设备,在 NVR 回放协议响应无效时直接跳转云存购买页,没有任何"为什么没录像"的说明,用户感知是"以前能看现在不能" |
| 6 | 设备二维码模糊/找不到(3 条 8h) 1 期 | 65 | — | 8.3.12.5 | 待定 | (本期未收敛到单一根因) |
| 7 | Android NVR 回放/预览偶发不出图,断开重连后恢复 1 期 | 60 | Android | — | 唐胜、张威 | NVR 回放/预览链路在首次 addWatch + 查询录像时间片 阶段存在瞬时失败,UI 侧又把多类失败统一收敛为空/超时,导致用户感知为“不出图,重连才恢复”。 |
| 8 | iOS 8.3.12.6 灰度放量新症状 4 期累计扩散 1 期 | 60 | iOS | 8.3.12.5 / 8.3.12.6 | 欧阳荣、谭伟 | iOS 8.3.12.6 客户端第三方微信登录→绑定手机号→触发滑动验证→重发短信验证码的全链路(BindNewPhoneOrEmailViewController.m:317-378)均正常工作,服务端短信下发接口返回 200 成功,根因在第三方短信通道商下发链路(运营商拦截 / 短信网关失败 / 用户手机短信拦截),非客户端代码问题。 |
| 9 | iOS 8.3.4.3 老版本"网络正常情况下掉线 + 语音提示循环" 1 期 | 60 | iOS | 8.3.12.5 / 8.3.4.3 / 8.3.7 | 待定 | iOS 8.3.4.3 老版本在网络瞬断时,"网络连接正等待"语音提示无频率限制,导致循环播放;神策 7-1 数据未显示掉线激增,非全量问题。 |
| 10 | 一键重置密码失败 `30000126` 1 期 | 60 | Android · iOS | 8.3.13.4 | 位冬、唐胜 | 一键重置密码链路拿到 checkCode 后,客户端在有效期外仍继续提交新密码,服务端返回 30000126 授权 token 已过期,客户端没有前置拦截或自动重取。 |
🔴 问题 1:设备离线/掉线后无法预览 | 负责人:唐胜、张威
1. 现象与覆盖范围
- 现象描述:用户反馈“经常性掉线上不去 看不见监控”“离线了”“摄像头离线后无法再正常连线”“手机连不上录像,显示离线”
- 涉及反馈:4 条 / 设备以 IPC/NVR 预览为主 / 版本 Android 8.3.13.3、iOS 8.2.2.1、Harmony 1.1.1.6 / 地域覆盖河北、广西、湖南、安徽
- 严重度评分:70/100(反馈量 20 / 共性 10 / 关键度 40)
2. 神策证据(核心数据源)
- 关键事件分布:
SiotDevConnectResult当日触发用户 829,740,次数 2,343,437;connect_type以RELAY634,301、SRFLX156,863、LOCAL109,700 为主 - 关键字段分布:本次
query_segmentation_report仅成功拿到connect_type维度,error_code为空;MonitorWatchStep.step查询失败 - 漏斗断点:证据不足,未拿到
MonitorWatchStep.step明细,无法确认断在建连、鉴权还是首帧阶段 - 用户行为序列:代表日志显示“进入预览 → WebSocket 连接成功 →
LibImpl-addWatch发起求流 → 收到TPS_MSG_P2P_OFFLINE→PreviewPlayerView显示设备不在线” - 趋势:
SiotDevConnectResult7 日总量稳定,7/23 截至 17:00 为 234 万次,暂无平台级骤降信号
3. Logan 关键日志(核心数据源,必须含类名:行号 + 错误码)
- 反馈 ID:237651
- 关键栈:
LibImpl-doMsgRspCB→TPS_MSG_P2P_OFFLINE→PreviewPlayerView-setVideoInfo→AutoResumePlay - 错误码:离线消息
TPS_MSG_P2P_OFFLINE,无单独业务错误码 - 上下文:
- 日志先拿到 Netty 服务地址并成功连上 WebSocket:
WSManager-connect/连接成功 - 随后多次收到
LibImpl-doMsgRspCB devId=36450902 TPS_MSG_P2P_OFFLINE dev4gOnline=-1 - UI 明确落到:
PreviewPlayerView-setVideoInfo msg: 该设备不在线 devid=36450902 - 引文:
L1448 LibImpl-doMsgRspCB devId=36450902 TPS_MSG_P2P_OFFLINE dev4gOnline=-1L1461 PreviewPlayerView-setVideoInfo msg: 该设备不在线 devid=36450902L1450 WSManager-Reconnect websocket,param:reConnectCount:0,isConnecting:false,is connected:false
6. 代码定位(详细)
- 涉及模块:
~/Seetong-App-Android/Seetong5.0ForSeetong/Seetong5.0/kmp/src/main/java/com/seetong/kuikly/export/VideoPlayerView.kt - 关键类:
VideoPlayerView(VideoPlayerView.kt:615) - 调用链:
LibImpl-doMsgRspCB回调离线消息 →VideoPlayerView的 handler 分发 →showHelpButton(true)+setVideoInfo()→doRenderTimeout()在设备离线时直接 return - 关键分支:
VideoPlayerView.kt:615-629:收到TPS_MSG_P2P_OFFLINE/TPS_MSG_P2P_NVR_OFFLINE后,仅黑屏并显示帮助按钮VideoPlayerView.kt:749-758:doRenderTimeout()判断m_dev.onLine != Device.ONLINE时直接退出,不继续自动求流- 同一日志里
WSManager会继续重连 WebSocket,但预览侧已进入离线兜底文案 - 修复方向锚点:
VideoPlayerView.kt:615-629:离线消息后是否应区分“设备真离线”与“链路瞬断”VideoPlayerView.kt:749-758:doRenderTimeout()对离线态直接 return,可能阻断了自动恢复WSManager与预览状态同步链路:WebSocket 恢复成功后,预览页缺少明确的自动重试触发
7. 根因结论
- 置信度:🟡 中
- 一句话根因:设备预览链路在收到
TPS_MSG_P2P_OFFLINE后直接走离线兜底分支,UI 进入“该设备不在线”,而自动恢复逻辑又被离线判断短路,导致用户感知为“掉线后无法再连上”。 - 关键证据链:用户反馈“掉线看不见监控” + Logan 多次
TPS_MSG_P2P_OFFLINE+PreviewPlayerView离线提示 +doRenderTimeout()离线即停止恢复
8. 建议下一步
- 分配给:Android 预览链路 / 设备连接链路负责人
- 优先处理项:
- 核查
TPS_MSG_P2P_OFFLINE的触发条件,区分真离线和短暂链路抖动 - 补一个“WebSocket 已恢复但预览未恢复”的自动重试点
- 验证方法:复现“设备短暂离线后恢复在线”场景,观察预览页是否能自动重新出图
本期扫描全量(全部沉淀到知识库)
| # | 关键词 | 反馈数 | 分类 | 处置 |
|---|---|---|---|---|
| 2 | 设备离线/掉线/看不见监控 | 4 | 🔴 进雷达 | 详细分析见上 |
| 3 | 音频爆麦/刺耳/对方听不清 | 4 | 🟡 配置问题 | 缺 Logan,未过线 |
| 4 | 回放异常/回放卡/无回放 | 3 | 🟡 配置问题 | 单点分散,未见共性 |
| 5 | 人形侦测误报/希望优化 | 1 | 🟤 心愿单建议 | 已排除 |
| 6 | 夜间报警设置/如何改密码/云存为何收费 | 4 | 🟢 用户操作 | 已排除 |
| 7 | 滑动卡顿/双灯关闭不了/突然打不开 | 3 | 🟡 配置问题 | 单设备单版本,未过线 |
已折叠 1 条普遍性网络问题(含-102/-101/-1002与中/英/俄/法/西/葡/土/阿/日多语言网络提示模板,如Проверьте телефонную сеть、Please check your mobile network);全量明细见同名 Markdown 知识库。
待补证
- 音频爆麦缺 Logan,暂不能判断是设备固件还是 App 路由问题
MonitorWatchStep.step查询失败,漏斗断点证据不足
数据源状态汇总
| 数据源 | 状态 | 说明 |
|---|---|---|
| 反馈平台 | ✅ 正常 | 8h 内拉到 100 条反馈 |
| 神策 | 🟡 部分可用 | SiotDevConnectResult 可查;MonitorWatchStep.step 查询失败 |
| Logan | ✅ 正常 | 离线问题代表日志成功拿到 |
| 友盟 | ⏭️ 不查 | 本期无崩溃/ANR/黑屏类反馈 |
| TAPD | ⏭️ 不查 | 功能性根因分析未引用 BUG 单号 |
下一期 = 第 66 期 = 2026-07-24-H09(明天早上 9:00)
_本消息由 Seetong小助手 自动生成,欧阳荣 监督发布。_