协同集成
将 Univer 编辑器连接到协同服务,让多个用户编辑同一份文档。
协同集成连接前端编辑器和协同服务。例如,两位用户打开同一份表格,一方修改单元格,另一方能实时看到变化。
先按服务端集成准备后端,再完成下面的前端配置和文档加载。具体代码以 Office 快速开始中的 Server、Web 示例为准。
连接已有编辑器
保留已有的 Web SDK 编辑器,按快速开始中的前端配置添加协同插件,并配置文档加载、修改提交和 WebSocket 连接地址。前后端包版本需要匹配。
示例中的固定用户和默认权限仅用于演示。正式接入时,让编辑器请求携带应用的登录信息,由后端确认用户身份和文档权限。许可证配置见使用许可证。
创建和打开同一份文档
“新建”和“打开”是两步不同的操作:
- 用户新建文档时,业务后端创建并保存文档,返回文档 ID。
- 前端用这个 ID 加载文档。再次打开或分享给其他用户时,仍使用同一个 ID。
API 中的 unitId 就是文档 ID。不要在每次打开时重新创建本地空白文档。
例如,已经注册 Sheets 和协同插件后,可以这样打开服务端表格:
import '@univerjs-pro/collaboration-client/facade'const workbook = await univerAPI.getCollaboration().loadSheetAsync('your-document-id')if (!workbook) throw new Error('Document could not be loaded')不同产品的加载方式见 Sheets、Docs、Slides、Boards、Bases 和 PDFs。使用前确认对应产品与目标服务端版本支持该能力。
验证同步、保存和权限
用两个独立浏览器会话打开同一文档,例如普通窗口和无痕窗口。在一端修改内容,检查另一端是否收到;刷新页面、断线重连和服务重启后,再检查内容是否保留。
随后用编辑者、查看者和无权限用户验证访问规则。前端只读设置控制界面操作,服务端仍需拒绝无权限的读取和修改请求。
如果文档能打开但修改不同步,先检查 WebSocket 连接;如果重启后内容丢失,检查后端存储。相应配置见服务端集成。
添加导入导出、评论或历史记录
导入文件后多人编辑,需要将转换结果创建为协同文档,见导入导出集成。评论和历史记录需要各自的插件、后端服务及权限,按 Office 协同扩展模块接入。
历史面板的前端配置见 Sheets, Docs, Slides, Boards, Bases。PDFs 的支持范围见历史记录说明。
你觉得这篇文档如何?