# 文档通在线编辑技术说明文档
# 1.背景及综述
中标慧康文档通服务是一款去控件化、支持多人在线编辑的流式文档编辑器(支持标准格式的docx、xlsx、pptx) 本文档致力与阐述文档通服务接入OA的部分前端逻辑和全部后端逻辑,以及配置相关的常见问题。
# 2.文档通接入(前端)
注:本文档默认文档通服务以安装并按要求配置并启动。
# 2.1接入api.js
前端引入文档通api.js,并初始化nsoOffice前端组件, 在本期实现,其由wdtAdapter.js 静态加载实现
# 2.2 构建打开参数,维护nsoOffice对象
# 2.2.1 获取当前文档downloadUrl和callbackUrl
# 2.2.2 获取dockey
# 2.2.3 拼接params
# 2.3 获取token
请求地址:/rest/wdt_online/v1/get_jwt
请求方式:POST
请求参数:@param params {payload : String}
请求接口获取文档通参数token, 并打开文档
# 3.文档通接入(后端)
# 3.1 token 生产
通过统一的加解密方式,生产token, 用于于文档通鉴权和后续的权限校验。token需要一个双方确定的密钥,在流版签配置中心后台配置。并在文档通服务配置。
同时需要确保与文档通服务配置保持一致。后台代码位置
com.seeyon.ctp.common.office.config.util.WdtJwtUtil
# 3.2 后台回调
文档通用于在文档变化、保存后会通过 前面的callbackUrl设置主动请求OA服务器以获取信息或者落地文档通服务器上的文件。
# 3.3 保存回调和dockey机制
由于文档通使用dockey作为文档的唯一标识,但同时这个dockey在触发了一个文档所有用户离开编辑界面一段时间后,会触发一个离线保存回调请求到OA服务器,此时需要OA服务器落地文件,并为当前文档生成一个新的dockey。旧的dockey将丢弃从用户打开该文档到触发离线保存期间的所有内容。 而对于OA而言,文档的唯一标识为ctp_file的主键fileId。为了配合文档通离线保存的机制,故本次对接中,dockey由fileId + "_" + update_date 拼接而成。
- 文档通在线文档在编辑过程中触发Ctrl+S 时,会主动触发保存回调到OA服务器,这个时候OA服务器应该从回调的请求中获取文档下载流下载并落地文件。
- OA可以通过nsoOffice对象通过saveFile2前端js方法强制文档通服务器触发保存回调请求。
- 当所有用户退出文档并一段时间后没有任何用户再打开该文档时,文档通将发起离线保存回调,并在回调请求返回后,更新该文档版本(如下图)
版本更新后,或者在版本更新期间重新对某fileId文件进行打开时,应该需要通过文档通提供的command请求的keystatus子请求去获取当前文档的保存情况,避免dockey更新不及时的问题。
# 4.文档通配置及检查清单
# 4.1 检查系统管理级菜单
在系统管理员后台管理界面-系统设置-流版签系统设置-在线编辑-文档通在线编辑中的三个配置(如图示)
检查三个配置:
- 文档通在线编辑服务器地址:文档通服务器的ip+port。保证配置正确无误,保证端口已放开。
- 文档通在线编辑密钥:保证与文档通部署时文档通服务配置的密钥完全一致。
- 文档通在线编辑回调地址:既OA的真实地址,保证端口放开。
# 4.2 检查网络连通性
检查完上述配置完全正确后,需要验证网络的连通。
- 保证文档通服务器能够ping通OA服务器,且端口放开
- 保证OA服务器能够ping通文档通服务器,且端口放开
- 保证用户OA客户端所在的网段,能够ping通OA/文档通服务器,且端口放开。
快速跳转
