Skip to content

WPS协作消息迁移开发

适用场景

WPS协作在私有化推广过程中,往往面临着需要与企业现有IM系统进行融合或者迁移的需求:

  • 企业已有使用IM,希望切换使用WPS协作时,将部分历史IM数据迁移到WPS协作
  • 企业在切换使用WPS协作的过程中,存在新旧IM并行过渡的阶段,希望将数据能双向读写实现2个IM互通

针对上述2个场景,WPS协作提供了2套二开方案,企业可按需选择对接。

基本概念

在本文档中,有几个常用名词,我们首先进行约定:

  • 三方IM:企业侧原本使用的老的即时通信系统
  • WPS协作:金山办公提供的一站式办公平台
  • 迁移适配服务:用来在新老两个即时通讯服务中进行消息互通和中转的服务端应用程序

对接前提

三方IM的聊天数据移到WPS协作,需要具备以下条件:

  • 三方IM中的账号要与WPS账号进行打通
  • 能从三方IM服务端导出历史消息 或 三方IM提供实时的消息数据获取能力

迁移方案

存量数据导入

总体说明

存量数据导入的方式,是指将三方IM中的消息、会话等数据,通过数据同步的方式,一次性导入到WPS协作中。该方案中,WPS协作侧提供标准的数据同步开放接口和调用流程,开发者需要获取到三方IM系统的数据,通过调用WPS协作的数据同步接口,完成数据导入。大致示例流程如下:
存量数据导入

详细步骤

  1. 从三方IM系统中导出需要迁移的数据
  2. 将三方系统的数据转换为WPS协作的消息、会话数据模型。WPS协作的消息、会话模型参考附录
  3. 依次调用接口进行单个会话(单聊、群聊)的数据迁移,接口文档可见:

使用要求和限制

  1. 每个会话最后必须调用同步结束接口,否则同步的消息在WPS协作端上无法正常展示
  2. 会话同步结束之后,再通过上述接口进行同步动作

实时数据迁移

总体说明

三方IM和WPS协作共存,消息互通,在三方IM停用之前,需要在新老系统之间保持实时双向同步,此方案相对复杂,若无新旧IM并存同步的诉求,请勿使用该方案。
该方案通过部署一个迁移适配服务,通过回调/事件订阅的方式,实时拿到三方IM中的业务数据,调用WPS协作提供的消息发送等开放能力,在协作侧进行回放,从而达到在三方IM发消息,用户在WPS协作也能实时收消息的效果。具体方案如下图所示:
实时数据迁移

详细步骤

分成【从三方IM数据实时同步到WPS协作】和【从WPS协作数据实时同步到三方IM】2部分:

从三方IM数据实时同步到WPS协作

  1. 从三方IM服务端实时获取会话、消息等需要同步的数据。
  1. 迁移适配服务进行数据格式的转换。
  1. 迁移适配服务将会话实时同步到协作。
  1. 迁移适配服务将会话消息实时同步到协作。

从WPS协作数据实时同步到三方IM

  1. 从协作服务端实时获取会话、消息等需要同步的数据。
  1. 迁移适配服务进行数据格式的转换。
  1. 迁移适配服务将会话实时同步到三方IM。
  1. 迁移适配服务将会话消息实时同步到协作。

接口说明

数据实时同步的接口和事件,请通过该文档进行查阅:消息互通接口说明

特别说明

消息格式的转换 协作IM 服务的消息可能与三方IM服务的消息格式有差别,需要用户自己实现格式的转换。协作的消息支持文本消息,图片消息,语音消息,视频消息,位置消息、表情消息、卡片消息等不同的类型,具体请参考开放平台消息格式类型

语音消息的格式 协作的语音消息为 amr 格式,如果三方IM服务器支持的格式不符,需要适当的进行转换。

流媒体及相关资源 图片消息、语音消息、视频消息等涉及到的资源文件,在做迁移时需要从三方IM服务端下载,并上传到WPS协作服务端。

迁移过程数据存储 无论是存量数据导入还是实时数据迁移,都涉及从一方IM先读取数据,适配中间服务进行清洗转换,再写入另一方数据的过程。这也是整个方案最关键和复杂的步骤。为了避免因该步骤处理失败而导致重复读数的情况,该适配服务需要具备数据缓存能力,即该服务需先将获取到的原始数据进行存储,再对存储的数据进行清洗适配,避免直接从IM读取和清洗,减轻服务间的耦合度和可能的性能效率问题。