Seetong · Report
Seetong 反馈雷达|第 67 期
扫描窗口:2026-07-24 09:00 ~ 17:00(过去 8 小时)
生成时间:2026-07-24 17:00
平台:Android(主要) + iOS
---
TL;DR 核心要点
- RELAY(转发):1,775,420 次(占比最高)
- SRFLX(对称型 NAT 打洞):372,069 次
- LOCAL(局域网直连):237,165 次
最近一个月 Top 问题
按严重度与复发期数排序,已把跨期同类反馈归集;负责人由问题代码锚点对应的 Git 提交历史(blame / 近期主要提交者)反查;数据窗口:最近 30 天(截至 2026-07-24)。
| # | 问题(严重度降序) | 严重度 | 平台 | 版本 | 负责人 | 问题原因 |
|---|---|---|---|---|---|---|
| 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 已过期,客户端没有前置拦截或自动重取。 |
Stage 0|反馈拉取
| 数据源 | 数量 | 备注 |
|---|---|---|
| 用户反馈 | 100 条 | 含 3 条明确"设备掉线"相关 |
| 心愿单 | 100 条 | 已排除(产品建议类) |
关键反馈摘录(TOP 问题):
| 反馈ID | 内容摘要 | 设备型号 | 版本 |
|---|---|---|---|
| 237919 | 总断网 | HUAWEI TYR-AL00 | 1.1.1.6 |
| 237918 | 一个通道光掉线 | HUAWEI ALN-AL00 | 1.1.1.6 |
| 237917 | 一个通道光掉线 | HUAWEI ALN-AL00 | 1.1.1.6 |
| 3416 | 鸿蒙闪退+备注串 | HUAWEI VYG-AL00 | 1.1.1.6 |
Stage 1|3 维打分(问题筛选)
雷达 TOP 1:设备掉线 / P2P 连接失败
| 维度 | 得分 | 依据 |
|---|---|---|
| 反馈量 | 20 | 3 条明确投诉(总断网 1 + 单通道掉线 2),另有多条相关反馈 |
| 共性 | 20 | 均为 P2P 连接失败,多款华为机型(鸿蒙/Android) |
| 关键度 | 30 | 核心功能阻塞:设备离线 → 视频预览中断 → 用户无法使用 |
| 总分 | 70 | ✅ 进入雷达 |
雷达 TOP 2:预览卡顿(35 分,搁置)
Stage 2|多源深挖
2.1 神策数据
事件:SiotDevConnectResult(设备连接结果)
日趋势:
| 日期 | 连接次数 | 趋势 |
|---|---|---|
| 07-17 | 1,073,473 | 基准 |
| 07-18 | 1,026,226 | ↓ |
| 07-19 | 1,031,522 | → |
| 07-20 | 1,040,663 | → |
| 07-21 | 1,036,218 | → |
| 07-22 | 1,059,781 | → |
| 07-23 | 1,066,798 | → |
| 07-24 | 852,631 | ⚠️ 明显下降(-20%) |
今日(07-24)P2P 连接成功率 by 网络类型:
| 网络类型 | P2P失败数 | P2P成功数 | 总计 | 成功率 |
|---|---|---|---|---|
| WIFI | 1,016,614 | 538,615 | 1,555,229 | 34.6% |
| 5G | 136,761 | 15,804 | 152,565 | 10.4% |
| 4G | 73,487 | 8,955 | 82,442 | 10.9% |
| NULL/其他 | 585,989 | 56,193 | 642,182 | 8.7% |
| 全网汇总 | 1,812,851 | 619,567 | 2,432,418 | 25.5% |
⚠️ 75% 的设备连接尝试 P2P 失败。5G/4G 网络成功率仅约 10%,WiFi 相对较好但也不到 35%。
连接类型分布(今日):
- RELAY(转发):1,775,420 次(占比最高)
- SRFLX(对称型 NAT 打洞):372,069 次
- LOCAL(局域网直连):237,165 次
Relay 重试阈值触发(relay_threshold ≥ 2.0):16,114 次,说明部分设备在 relay 上也遇到困难。
2.2 Logan 日志深挖
下载日志:反馈用户(ID 237919,HUAWEI TYR-AL00,1.1.1.6)
关键日志证据:
# 设备状态(离线)
devIsOnline: 0 ← 设备不在线
lastHeartTime: 1782433385000 ← 最后心跳:约37小时前
p2pLastHeartTime: 1782441806000
# SDK 持续收到 P2P 离线回调
LibImpl-doMsgRspCB devId=28699087 TPS_MSG_P2P_OFFLINE dev4gOnline=-1
# 出现 10+ 次
# Netty WebSocket 重连(连接不稳定)
WSManager-连接成功!→ EOFException → 重连
WSManager: 114.116.196.211 → 114.116.213.86 → 114.116.196.16(多次切换)
# 错误码
Error stats: {'-102': 8, '-101': 6, 'ssl_connect': 1, 'EXCEPTION': 85}
# -102: 连接超时;-101: 连接失败;EXCEPTION: 85次
Stage 3|代码定位
根因链路
设备离线处理链(Android):
设备P2P断线(Native SDK)
→ TPS_MSG_P2P_OFFLINE(LibImpl.java:3261)
→ deviceOffline(dev, dev4gOnline)(LibImpl.java:3070)
→ dev.m_connect_ok = false(断开标志)
→ dev.m_status_nvr = Device.OFFLINE
→ refreshDevListByOnlineState(dev, OFFLINE)(LibImpl.java:3103)
→ UI 弹出"设备离线"提示
关键字段:
DeviceChild.devIsOnline(0=离线,1=在线):由设备心跳维护DeviceChild.lastHeartTime:最后心跳时间戳DeviceChild.p2pLastHeartTime:P2P 通道最后心跳
P2P 连接成功判定:p2p_hold_success = true(仅 25.5% 概率为 true)
Relay 回退机制:
- P2P 失败 → 自动切换 RELAY 转发(需 relay 服务器)
- Relay 服务器:
shrelay15/17/18.s5.seetong.com(上海),bjrelay40.s2.seetong.com(北京) - VIP relay 需付费订阅,普通 relay 有负载限制
问题根因分析
| 层次 | 问题 | 影响 |
|---|---|---|
| 网络层 | 5G/4G NAT 类型严格,P2P 打洞成功率仅 10% | 设备难以直连 |
| SDK 层 | P2P 失败后 relay 回退有阈值(2次重试) | 部分用户卡在 relay |
| 产品层 | Relay 转发需服务器资源,非 VIP 用户受限 | 免费用户体验差 |
| 用户层 | 设备最后心跳 37 小时前,可能是设备真正离线 | 但 SDK 应更早重试恢复 |
Stage 4|结论与建议
🔴 TOP 问题:P2P 连接失败率高(75%),设备频繁离线
置信度:🟡 中等
- ✅ 证据:神策 7 天趋势 + Logan 实锤 + 用户反馈
- ⚠️ 局限:神策无 error_code 明细字段,relay_close_reason 全为 NULL
短期建议:
- 优化 5G/4G 网络的 P2P 打洞策略(参考 NAT 类型检测)
- Relay 阈值从 2.0 调整为更激进重试(≥ 3.0)
- VIP relay 对普通用户提高配额上限
长期建议:
- 调研为何 07-24 全天连接量下降 20%(服务器端问题?)
- 在 Logan 中增加 P2P 失败 error_code 上报
- 在
SiotDevConnectResult事件中补全relay_close_reason字段
附:本期排除项
- 🟢 用户操作类:设置/密码/网络配置(指导用户自行解决)
- 🟡 配置问题:设备配网失败(已有专项)
- 🟣 网络通用错误(-102/-101 广泛存在,非本期雷达重点)
- 🟤 心愿单:火焰识别报警(产品建议,不进 BUG 雷达)
本消息由 Seetong小助手 自动生成,欧阳荣 监督发布。