REAL-TIME COLLABORATION

开源多人实时协同文档:Tiptap + Yjs 协作编辑方案

DocFlow 提供基于 Tiptap、Yjs 与 Hocuspocus 的开源多人实时协同文档方案,覆盖在线状态、离线缓存、自动重连、修订追踪和私有化扩展。

开源协同文档多人实时协同编辑Tiptap Yjs 协同编辑Hocuspocus 协同服务离线协同文档私有化文档协作平台在线多人编辑器CRDT 文档协作
方案摘要

这套方案解决什么问题?

DocFlow 将富文本编辑、CRDT 协同状态、在线成员感知和离线持久化放在同一文档协作空间中。团队成员可以同时编辑同一份文档;网络中断时,本地内容继续保留,恢复连接后再同步。需要长期保存的文档、权限和审计数据仍由服务端数据库负责。

适合哪些团队

从真实业务边界判断是否适合采用或二次开发。

  • 需要多人同时撰写、评审和修订制度、方案或知识文档的团队
  • 计划在自有系统中集成 Tiptap、Yjs 或 Hocuspocus 的研发团队
  • 对文档权限、数据隔离、离线编辑和私有化部署有明确要求的企业
核心能力

从功能名称落到可验证的实现边界

多人同步编辑

Yjs 负责可合并的协同文档状态,Hocuspocus 负责连接和文档同步,避免依赖脆弱的本地文本索引。

离线缓存与自动重连

IndexedDB 保留本地 Y.Doc 状态;网络恢复后,客户端重新连接协同服务并继续同步。

在线状态与选区感知

awareness 只承载在线用户、光标和临时选区等瞬时信息,不用于保存需要长期持久化的业务数据。

修订与审阅

编辑建议以结构化修订进入文档,审阅者可以定位、接受或拒绝变更,保留清晰的人机协作边界。

执行流程

关键步骤与错误边界保持清楚

  1. 1

    加载文档与权限

    服务端根据已认证用户、工作区和文档标识校验访问边界,再加载对应协作文档。

  2. 2

    初始化本地与远端状态

    客户端创建 Y.Doc,并同时连接 IndexedDB 持久化与 Hocuspocus Provider。

  3. 3

    同步正文和临时在线状态

    正文通过 Yjs update 合并;在线成员、光标和选区通过 awareness 单独同步。

  4. 4

    持久化快照与业务数据

    文档快照、元信息、权限、评论和审计记录按职责进入数据库,而不是混入 awareness。

技术与数据职责

明确每一层负责什么,避免把临时状态、权限和持久业务数据混在一起。

  • Tiptap:富文本编辑器和文档 schema
  • Yjs:正文与可合并协同状态
  • Hocuspocus:WebSocket 协同服务和房间隔离
  • IndexedDB:离线编辑状态与恢复
  • Database:权限、文档元信息、审计和长期业务数据
FAQ

常见问题

DocFlow 的协同编辑为什么使用 Yjs?+

Yjs 提供 CRDT 数据结构和增量更新机制,适合多人并发编辑与离线合并。DocFlow 用它承载文档协同状态,而不是把普通 React state 当成协同数据源。

断网后还能继续编辑文档吗?+

可以。客户端通过 IndexedDB 保留本地协同状态;网络恢复后会重新连接并同步更新。具体冲突结果由 Yjs 合并语义决定。

是否适合私有化文档协作平台?+

适合以开源代码为基础进行私有化扩展。企业部署仍需结合现有身份认证、网络、存储、审计和运维要求完成配置与安全评估。

awareness 是否保存评论和审批数据?+

不保存。awareness 只适合在线用户、光标、选区等临时状态;评论、权限、审批和审计应持久化到数据库。

AI 合同审查系统与合同修订追踪方案

DocFlow 面向合同条款审查和法律文档协同审阅,提供正文引用、风险提示、AI 改写建议、修订追踪以及逐项接受或拒绝的人工复核流程。

AI 文档 Agent 工作流与文档审核自动化方案

DocFlow 支持可视化编排 AI 文档 Agent 工作流,把上下文组装、模型执行、质量复核、人工审核、工具调用和结果记录连接为可观察流程。

基于 DocFlow 评估你的文档协作与 AI 工作流

可以先查看源码和实现边界;需要企业知识库、认证、内部工具或私有化环境集成时,再根据实际需求设计交付范围。