收藏与歌单双向同步 —— 在哪个客户端操作都算数
唯一真相源是网易云账号
kanade 和网易云官方 App 操作的是同一份数据——存储在网易云服务器上的、属于你那个账号的数据。kanade 不做本地独立存储,它做的是:读取网易云数据 → 展示给你看 → 把你的操作写回网易云。
所以两个客户端之间的"同步"实际上不是 kanade 主动去和官方 App 同步,而是:
无论在哪个客户端操作,都在读写同一份服务端数据。另一个客户端下次读取时自然就能看到变化。
同步范围
所有和收藏/歌单相关的操作都会实时回写到网易云服务器:
| 操作 | 在 kanade 里做的 | 在官方 App 里看到的 |
|---|---|---|
| 收藏一首歌到"我喜欢的音乐" | 立即写入网易云 | 立即能看到(官方 App 下拉刷新后) |
| 收藏一首歌到自建歌单 | 立即写入网易云 | 立即能看到 |
| 新建歌单 | 立即写入网易云 | 立即能看到 |
| 重命名歌单 | 立即写入网易云 | 立即能看到 |
| 删除歌单 | 立即写入网易云 | 立即消失 |
| 从歌单里移除曲目 | 立即写入网易云 | 立即消失 |
| 订阅别人的歌单 | 立即写入网易云 | 立即出现在订阅列表 |
| 取消收藏一首歌 | 立即从网易云移除 | 立即消失 |
所有操作都是写操作(写入或删除)→ 立即推送到网易云服务器 → 成功返回。
延迟范围
正常网络条件下,写操作到网易云服务器返回成功的延迟通常在 200ms ~ 2 秒之间。另一个客户端(比如官方 App)下一次读取歌单列表时就能看到变化。
但客户端之间的感知延迟可能更大——取决于官方 App 或 kanade 什么时候刷新缓存。一般来说:
- 官方 App 下拉刷新 → 立即拉取最新数据
- kanade 返回歌单列表页 → 自动或手动刷新
- 长时间后台 → 回到前台时自动刷新
如果你在 kanade 里收藏了一首歌,切到官方 App 没立刻看到,下拉刷新一下就出来了。
离线时的处理
如果网络断了,kanade 仍然允许你操作界面(比如点收藏按钮),但这些操作会被标记为待同步——一旦网络恢复,kanade 会把待同步的写操作批量推送到网易云服务器。
注意:
- 离线状态下只允许本地操作(界面上看起来操作成功了),但不写入网易云
- 如果长时间离线后待同步的操作和网络上的数据有冲突(比如在 kanade 里删除歌单、同时在官方 App 里重命名歌单),以网易云服务器端的最新操作为准
- kanade 没有暴露复杂的冲突处理界面——简单的"后到覆盖"逻辑