这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
多端同步问题分析
一条用户投诉
入职第四周,老王给我看了一条用户投诉:
「我在手机上看了通知,标记已读,但在电脑上还是显示未读。这是 bug 吗?」
我查看这个用户的设备表:
id user_id device_token platform brand last_active
1 123 abc123 ios iphone 2026-04-01 09:00
2 123 def456 ios ipad 2026-04-01 08:30
3 123 ghi789 android pixel 2026-04-01 07:00
这个用户有 3 台设备:iPhone、iPad、安卓手机。
问题分析
我画了一个时间线:
时间 09:00 时间 09:05
iPhone: 用户标记已读 iPhone: 已读 ✓
iPad: 未读 ✗(状态没更新)
安卓: 未读 ✗(状态没更新)
核心问题:设备之间的状态没有同步。
为什么会出现
- 用户多设备登录:手机、平板、电脑是常态。
- 已读状态存在服务端(单一事实来源),但展示在各设备上。
- 一台设备改了状态,其他设备不知道。
这本质是「一份状态,多个视图」的同步问题:视图要跟随权威状态变化。
解决目标
同步要满足:
- 及时:改了状态,其他设备尽快更新。
- 不打扰:同步消息不能弹出通知栏。
- 可降级:同步失败时,至少打开 App 后能拉平。
一句话
多端同步问题的本质:一个用户多个设备共享同一份通知状态,状态变了要同步到所有视图。下一节对比三种同步方案。
