Skip to content

原理概述

WPS WebOffice 文档的预览和编辑需要对实体文件进行读取和存储。为了给接入方业务提供最大的灵活度,WebOffice 并没有耦合文件系统相关的逻辑,并以在线网页为显示载体。基于此,WebOffice 提供了回调服务和 WebOffice SDK 来解决WebOffice 服务和文件系统之间的通信,以及实现接入方业务前端网页中的文档初始化操作。

🗃基于以上两点,接入 WebOffice 服务的三个要素如下:

  • 创建 WebOffice 应用,此应用为在线文档编辑服务的业务对象,是您进行后续接入步骤的前提
  • 服务端实现回调服务,完成 WebOffice 与文件系统之间的通讯
  • 前端集成 WebOffice SDK,在您的网页中实现文档的显示以及后续 API 的调用

WebOffice 服务、网页应用、开发者的服务端(回调服务)的交互如下图所示: 工作原理

WebOffice 系统内的文档组件,单个文档进程最多支持 200 人在线同时编辑,每个用户的改动,都会通过广播的形式更新所有在线用户(预览或编辑人员)的文档内容。组件会自动触发保存版本,开发者可选择保存或者不保存,不用担心版本丢失的情况,并且有较高的灵活性。

每个文档在系统内部对应一个具体的进程,所有编辑或预览该文档的用户都会导向该进程中。进程利用内核库对文档进行处理,并获取预览数据返回给前端展示。

WebOffice 需要与外部文件系统(开发者的存储系统,下文用drive代替)进行交互,从而使得用户的文件存储 与 WebOffice 服务进行解耦,用户可自行决定文件的存储方式(金山云文档、第三方对象存储等云存储设施),WebOffice 从中获取文件信息用户信息用户权限 等,并且通过已定义好的回调接口将新版文件回传给 drive。由于不同的 drive 所提供的接口不一样,我们会有 provider 模块(专门与文件管理模块通信),将 WebOffice 通过 provider 与 drive 进行通信。

🎉WebOffice 服务端与开发者回调服务,时序图如下:

工作原理