这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
设备管理与降级
同步失败怎么办
如果同步推送失败怎么办?我设计了一个降级方案:
- 同步失败时,其他设备的未读数暂时不准。
- 当 App 打开时,主动查询同步状态——拉取服务端权威未读数,拉平本地。
- 推送负责「及时」,打开 App 负责「兜底」。
实时消息同步
用户正在 App 内查看消息中心,其他设备发送消息,怎么实时显示?
我使用了 WebSocket:
- 消息中心打开时建立长连接。
- 新消息到达 → 服务端通过 WebSocket 推送 → 界面实时刷新。
- 长连接只在消息中心场景使用(高实时),不用在所有场景。
设备管理
用户可能更换设备,需要管理:
设备注册:
- App 启动时注册 / 更新设备 token。
- 记录平台、机型、最后活跃时间。
设备清理:
- 定期清理不活跃设备(超过 N 天未活跃)。
- 清理失效 token(结合 APNs 反馈服务)。
- 避免设备表无限膨胀。
多设备的上限
- 一个用户通常限制设备数量(如最多 10 台)。
- 超限时踢掉最不活跃的设备。
- 防止异常设备堆积。
一句话
同步的完整性靠「推送及时 + 打开兜底」双保险;实时场景用 WebSocket;设备靠注册 + 清理治理。降级设计让同步在失败时也能最终一致。
下一章处理通知轰炸:限流防骚扰。
