SuperAPI AI 工具集

electric-yjs

智能体与模型

查看项目

更新于 10-16 08:36

技能介绍

用途:该技能用于搭建 ElectricProvider,通过 Electric shapes 实现 Yjs 实时协同编辑。它基于 electric-shapes,使用前需先了解 ShapeStream 配置。

主要能力:

  • 配置 ElectricProvider,处理 documentUpdates 与 awarenessUpdates 两类 shape。
  • 通过 resume state 支持高效重连:提供 stableStateVector 时,重连仅发送存储向量与当前文档状态的差异,否则每次重连会拉取整个文档 shape。
  • 提供连接生命周期事件,如 status(connecting/connected/disconnected)与 sync,并支持手动 connect/disconnect。

使用方式(要点):

  • 在 Postgres 创建 ydoc_update 与 ydoc_awareness 表,并用触发器回收过期 awareness 条目。
  • 服务端提供接收二进制 Yjs update 的接口(如 PUT /api/yjs/update)。
  • 客户端创建 Y.Doc,通过 LocalStorageResumeStateProvider 加载并订阅 resume state,构造 ElectricProvider 时传入 doc、documentUpdates(含 shape、sendUrl、getUpdateFromRow)、awarenessUpdates、resumeState、debounceMs。
  • shape 流需使用 parseToDecoder 解析 BYTEA,否则 Y.applyUpdate 会静默失败或损坏文档。
  • awareness shape 可设置 offset: 'now',只获取实时 awareness,不做历史回填。
  • 代理需暴露 Electric 相关响应头(electric-offset、electric-handle、electric-schema、electric-cursor)。

适用场景:需要多用户实时协同编辑且后端使用 Postgres 与 Electric 的应用。

限制与注意:resume state 未持久化会导致每次重连拉取整个文档;缺少 parseToDecoder 会破坏文档;debounceMs 默认为 0,协同编辑应设为 100 以上以减少请求。资料未提供收费、价格、平台等信息。目标版本为 @electric-sql/y-electric v0.1.x。