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)。

#问题(严重度降序)严重度平台版本负责人问题原因
1Seetong 自建 API 集群大规模不可用(详细分析)
1 期
92Android8.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 期
70Android1.1.0.9 / 8.3.12.5 / 8.1.2.4唐胜、张威回放入口与录像状态 UI 主要依赖 sdRecordStu/权限,但未同步校验 NO_LOCAL_STOARGE 与 SDCardState=0,导致无存储能力设备仍可能暴露回放预期或状态显示异常。
4设备离线/掉线后无法预览
1 期
70Android · iOS1.1.1.6 / 8.2.2.1 / 8.3.13.3唐胜、张威设备预览链路在收到 TPS_MSG_P2P_OFFLINE 后直接走离线兜底分支,UI 进入“该设备不在线”,而自动恢复逻辑又被离线判断短路,导致用户感知为“掉线后无法再连上”。
5录像回放缺失 — 无 SD 卡的设备被直接引导云存购买(产品设计问题)
1 期
65Android · iOS8.3.12.5 / 8.3.13.3 / 8.3.13.4张威、唐胜、陈宝旺无 SD 卡 + 未开通云存的设备,在 NVR 回放协议响应无效时直接跳转云存购买页,没有任何"为什么没录像"的说明,用户感知是"以前能看现在不能"
6设备二维码模糊/找不到(3 条 8h)
1 期
65—8.3.12.5待定(本期未收敛到单一根因)
7Android NVR 回放/预览偶发不出图,断开重连后恢复
1 期
60Android—唐胜、张威NVR 回放/预览链路在首次 addWatch + 查询录像时间片 阶段存在瞬时失败,UI 侧又把多类失败统一收敛为空/超时,导致用户感知为“不出图,重连才恢复”。
8iOS 8.3.12.6 灰度放量新症状 4 期累计扩散
1 期
60iOS8.3.12.5 / 8.3.12.6欧阳荣、谭伟iOS 8.3.12.6 客户端第三方微信登录→绑定手机号→触发滑动验证→重发短信验证码的全链路(BindNewPhoneOrEmailViewController.m:317-378)均正常工作,服务端短信下发接口返回 200 成功,根因在第三方短信通道商下发链路(运营商拦截 / 短信网关失败 / 用户手机短信拦截),非客户端代码问题。
9iOS 8.3.4.3 老版本"网络正常情况下掉线 + 语音提示循环"
1 期
60iOS8.3.12.5 / 8.3.4.3 / 8.3.7待定iOS 8.3.4.3 老版本在网络瞬断时,"网络连接正等待"语音提示无频率限制,导致循环播放;神策 7-1 数据未显示掉线激增,非全量问题。
10一键重置密码失败 `30000126`
1 期
60Android · iOS8.3.13.4位冬、唐胜一键重置密码链路拿到 checkCode 后,客户端在有效期外仍继续提交新密码,服务端返回 30000126 授权 token 已过期,客户端没有前置拦截或自动重取。

Stage 0|反馈拉取

数据源数量备注
用户反馈100 条含 3 条明确"设备掉线"相关
心愿单100 条已排除(产品建议类)

关键反馈摘录(TOP 问题):

反馈ID内容摘要设备型号版本
237919总断网HUAWEI TYR-AL001.1.1.6
237918一个通道光掉线HUAWEI ALN-AL001.1.1.6
237917一个通道光掉线HUAWEI ALN-AL001.1.1.6
3416鸿蒙闪退+备注串HUAWEI VYG-AL001.1.1.6

Stage 1|3 维打分(问题筛选)

雷达 TOP 1:设备掉线 / P2P 连接失败

维度得分依据
反馈量203 条明确投诉(总断网 1 + 单通道掉线 2),另有多条相关反馈
共性20均为 P2P 连接失败,多款华为机型(鸿蒙/Android)
关键度30核心功能阻塞:设备离线 → 视频预览中断 → 用户无法使用
总分70✅ 进入雷达

雷达 TOP 2:预览卡顿(35 分,搁置)


Stage 2|多源深挖

2.1 神策数据

事件:SiotDevConnectResult(设备连接结果)

日趋势:

日期连接次数趋势
07-171,073,473基准
07-181,026,226↓
07-191,031,522→
07-201,040,663→
07-211,036,218→
07-221,059,781→
07-231,066,798→
07-24852,631⚠️ 明显下降(-20%)

今日(07-24)P2P 连接成功率 by 网络类型:

网络类型P2P失败数P2P成功数总计成功率
WIFI1,016,614538,6151,555,22934.6%
5G136,76115,804152,56510.4%
4G73,4878,95582,44210.9%
NULL/其他585,98956,193642,1828.7%
全网汇总1,812,851619,5672,432,41825.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

短期建议:

  1. 优化 5G/4G 网络的 P2P 打洞策略(参考 NAT 类型检测)
  2. Relay 阈值从 2.0 调整为更激进重试(≥ 3.0)
  3. VIP relay 对普通用户提高配额上限

长期建议:

  1. 调研为何 07-24 全天连接量下降 20%(服务器端问题?)
  2. 在 Logan 中增加 P2P 失败 error_code 上报
  3. 在 SiotDevConnectResult 事件中补全 relay_close_reason 字段

附:本期排除项

  • 🟢 用户操作类:设置/密码/网络配置(指导用户自行解决)
  • 🟡 配置问题:设备配网失败(已有专项)
  • 🟣 网络通用错误(-102/-101 广泛存在,非本期雷达重点)
  • 🟤 心愿单:火焰识别报警(产品建议,不进 BUG 雷达)

本消息由 Seetong小助手 自动生成,欧阳荣 监督发布。