六端云同步
云端账号体系架构深度解读

六端云同步

"桌面端正在播放的歌曲,手机端点一下就能接力"、"桌面端收藏的歌词设置,手机端立刻同步"、"电脑复制的文字,手机上立即可粘贴"——这些流畅体验的背后,是汽水音乐桌面端六端云同步架构的工程结晶。本文将带你深入理解这套系统的设计哲学与技术实现。

六端是什么

"六端"指的是汽水音乐桌面端生态覆盖的六个客户端:

  1. Windows 桌面客户端
  2. macOS 桌面客户端
  3. Linux 桌面客户端
  4. iOS 移动客户端
  5. Android 移动客户端
  6. Web 网页客户端

这六个客户端共享同一套账号体系、数据模型、同步协议,让用户的音乐生活真正实现"无边界"。

六端云同步的本质不是简单地把数据复制六份,而是构建一个一致的、收敛的、实时的数据流。

账号体系设计

账号体系是六端同步的基础。桌面端采用统一 UID 模型:

登录态管理

登录态采用 JWT 双 Token 设计:

这种设计兼顾了安全性与用户体验。即便桌面端长时间未使用,下次打开时无需重新登录。

数据模型

六端共享的数据可以分为五大类:

1. 用户画像数据

神经推荐 v3.0 的核心输入数据,包括:

2. 内容数据

用户创作的内容数据,包括:

3. 实时播放状态

支持"接力播放"的实时状态,包括:

4. 设置数据

桌面端 6.0 引入的"设置同步"能力,包括:

5. 订阅与会员

跨端共享的订阅权益数据,包括:

同步协议

六端同步基于自研的 QSync 协议实现:

协议设计原则

协议栈

QSync 协议栈分为四层:

  1. 传输层:基于 WebSocket 长连接 + MQTT 心跳
  2. 编码层:Protobuf 高效序列化
  3. 同步层:基于 CRDT 的冲突解决算法
  4. 业务层:领域模型的数据映射

冲突解决机制

多设备同时修改同一数据时,必须有清晰的冲突解决策略。QSync 采用 CRDT(Conflict-free Replicated Data Types)算法:

策略一:基于时间戳的 Last-Write-Wins

对于"歌曲收藏"、"音量调节"等单值数据,采用最新时间戳优先策略。

策略二:基于设备优先级的合并

对于"播放队列"等多值数据,采用设备优先级合并策略。桌面端通常具有更高优先级。

策略三:用户手动选择

对于无法自动解决的冲突(例如同时编辑歌单),桌面端会提示用户手动选择保留哪一份。

端到端加密

同步数据涉及用户隐私,桌面端 6.0 引入了端到端加密能力:

实际场景的同步策略

场景 1:接力播放

手机端播放《晴天》进度到 1:30,在桌面端打开客户端后,立即弹出"接力播放"入口,点击后桌面端从 1:30 继续播放。

实现:实时播放状态通过 QSync 实时推送,桌面端订阅本账号的播放事件,触发接力提示。

场景 2:桌面歌词状态同步

桌面端调节桌面歌词为"律动模式 + 蓝色主题",手机端下次打开时桌面歌词自动同步。

实现:设置数据变更触发云端更新事件,所有登录设备同步接收。

场景 3:跨端剪贴板

桌面端复制一段文字,手机端打开剪贴板面板直接粘贴。

实现:剪贴板变更事件通过端到端加密传输,对端接收后写入系统剪贴板。

同步性能指标

桌面端六端同步的性能指标:

未来演进方向

下一阶段,桌面端计划:

六端云同步是桌面端体验的基石,它让音乐不再受限于单一设备,而是成为用户跨场景生活的自然延伸。

标签 六端云同步 账号体系 接力播放 端到端加密 QSync