这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
推送同步实现
两类推送消息
推送消息有两种:
- 用户通知:评论、点赞等业务通知(展示给用户)。
- 同步通知:状态同步消息(不显示给用户)。
iOS 静默推送
iOS 通过 content-available: 1 标记静默推送:
- 会唤醒 App(最多 30 秒)。
- 不显示通知。
- App 在后台处理同步,更新未读数。
安卓数据消息
安卓通过不带 notification 字段的数据消息:
- 不会显示通知。
- App 在后台 / 前台都能处理。
- 用于同步未读数、已读状态。
同步时机
什么时候触发同步?
- 标记已读:单条已读 → 推送未读数变化给其他设备。
- 创建新消息:新通知到达 → 其他设备未读数 +1。
- 全部标记已读:广播给所有设备。
- 删除消息:同步删除。
同步消息的幂等
同步消息可能重复到达,App 端要幂等处理:
- 未读数以服务端返回的权威值为准,而不是本地累加。
- 多次收到同一同步消息,结果一致。
一句话
推送同步 = 用「不打扰的推送」(静默推送 / 数据消息)把服务端的权威状态广播到所有设备。关键在区分「用户通知」和「同步通知」。
