深色模式
控制台
WPS WebOffice 文档的预览和编辑需要对实体文件进行读取和存储。为了给接入方业务提供最大的灵活度,WebOffice 并没有耦合文件系统相关的逻辑,并以在线网页为显示载体。基于此,WebOffice 提供了回调服务和 WebOffice SDK 来解决WebOffice 服务和文件系统之间的通信,以及实现接入方业务前端网页中的文档初始化操作。
WebOffice 服务、网页应用、开发者的服务端(回调服务)的交互如下图所示:
WebOffice 系统内的文档组件,单个文档进程最多支持 200 人在线同时编辑,每个用户的改动,都会通过广播的形式更新所有在线用户(预览或编辑人员)的文档内容。组件会自动触发保存版本,开发者可选择保存或者不保存,不用担心版本丢失的情况,并且有较高的灵活性。
每个文档在系统内部对应一个具体的进程,所有编辑或预览该文档的用户都会导向该进程中。进程利用内核库对文档进行处理,并获取预览数据返回给前端展示。
WebOffice 需要与外部文件系统(开发者的存储系统,下文用drive代替)进行交互,从而使得用户的文件存储 与 WebOffice 服务进行解耦,用户可自行决定文件的存储方式(金山云文档、第三方对象存储等云存储设施),WebOffice 从中获取文件信息、用户信息、用户权限 等,并且通过已定义好的回调接口将新版文件回传给 drive。由于不同的 drive 所提供的接口不一样,我们会有 provider 模块(专门与文件管理模块通信),将 WebOffice 通过 provider 与 drive 进行通信。