差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
im:other:integrationcases:movedata [2018/12/16 04:45]
huanxinfudh
im:other:integrationcases:movedata [2022/03/01 00:30] (当前版本)
amy.hao [迁移准备]
行 1: 行 1:
-====== ​数据平滑迁移 ======+====== 平滑迁移 ======
  
 ---- ----
-  
-如何实现将自己聊天系统下的用户迁移到环信的聊天系统中,鉴于新用户已在环信聊天系统注册,而老的用户还在自己的系统上,如此,在环信的新用户和自己聊天系统下的用户无法通信,基于这种情况,给出如下两种方案: 
  
-  - 服务端处理:老用户和新用户发消息的时老用户送信息到自己聊天系统中,聊天系统收到这条消息,由聊天系统给老用户一个自动回复提示,需要老用户升级更新才能与新用户通信 +环信多年来一直致力于提供稳定,安全通讯服务在开者中积累了良好口碑。如果您希望接入环信的IM服务,但正在使用自研或友商提供的即时通讯服务,这篇文档正是针对这一场景,介绍了一套迁移方案,这套方案已经成功为多家客户实现了平滑迁移
-  - 如果需要老用户和新用户互相通信,老用户(需要注册一个环信的 ​ID 和老用户关联)可以发消息到自己的服务服务端来调环信的[[start:​100serverintegration:​50messages|REST发送消息接口]]给新户发送消息,新用户收到对方的消息,回复消息给老用户,先走到环信服务器,环信服务器调用旁路接口(己服务器提供的一个接口)到自己服务器上再由自己服务器的聊天系统发消息给客户+
  
-**注:在这里需要注意的是,新老用户之间发送文字容易处理,但是如果发送的消息里面带有附件情况,需要 User Server 提供可以上传下载附件的旁路接口,并且需要音视频转换的方法,目前环信客户端这边音频格式统一为 AMR 格式。**+用户也可以通过环信提供的存量迁移工具、平滑迁移Relay-server来完成迁移。这两个工具已经完成了绝大部分迁移工作,用户只需要关注感兴趣部分即可。 
 + 
 +===== 基本概念 ​ ===== 
 +  ​应用服务器:客户方自有,服务于客户应用业务功能的服务器。 
 +  ​环信IM服务器:环信提供的即时通讯服务器。 
 +  * 原IM服务器:用户原先实现 IM 功能的服务器,可以是自有服务器或友商提供的云服务。 
 +  * 老应用:与原 IM 服务器连接的老版本 app。 
 +  * 新应用:迁移后与环信服务器连接的新版本 app。 ​  
 + 
 +===== 迁移准备 ​ ===== 
 + 
 +进行 IM 平滑迁移,需要提前进行以下准备: 
 + 
 +注册环信账号,创建应用并开通IM功能。 
 + 
 +===== 强制升级迁移 ​ ===== 
 + 
 +如果新应用上架,可以强制所有的老应用升级至新应用,可以使用强制迁移方式。此方式下不存在新老应用的兼容问题。 
 +主要工作如下: 
 + 
 +==== 1. 导入用户体系至环信服务器 ==== 
 + 
 +用户体系这里包含两部分内容: 一是用户在环信的ID和密码,二是用户之间的好友关系。 
 +如果用户应用服务器自己保存了用户的好友关系,则不需要在环信服务器中保存该部分。 
 + 
 +环信只是即时通讯的消息通道。环信本身不提供除用户ID和密码外的其他资料。比如说,你的 APP 是一个婚恋交友 APP,那么你的 APP 用户的头像、昵称、身高、体重、三围、电话号码等信息是保存在你自己的 APP 业务服务器上,这些信息不需要告诉环信。 
 + 
 + 
 +[[http://​docs-im.easemob.com/​im/​server/​ready/​user|用户管理REST API]] 提供了一个创建环信账号的 REST 方法。这个方法很简单,只需要提供账号 ID 和密码2个参数,就可以创建一个环信账号。对一个已经上线,已经有很多现有用户的 APP 来说,要集成环信,只需要写一个脚本,循环调用创建环信用户的 REST 方法即可。  
 + 
 +==== 2. 导入群组信息至环信服务器 ==== 
 + 
 +需要将客户业务中的群组信息从旧的IM服务器中导入环信服务器,例如群建对应的群组,并加入对应的用户至群组中。 环信提供了对应的REST api可以完成这一切。 
 + 
 +[[http://​docs-im.easemob.com/​im/​server/​basics/​group|群组管理]] 
 + 
 +==== 3. 存量迁移工具 ==== 
 + 
 +环信为了用户更好的迁移数据(用户体系、群组),提供了存量迁移工具。用户只需要在此基础上简单二次开发,向工具中集成需要迁移的数据,即可使用。如有需要,请联系销售。 
 + 
 +==== 4. 导入用户设备上的历史消息 ==== 
 + 
 +在新版本App中集成环信IM SDK后,如果需要继续使用用户设备上的旧消息,可以使用导入消息的api,构建环信消息结构,导入环信SDK中的消息数据库。 
 + 
 +具体可以参考: 
 + 
 +[[http://​docs-im.easemob.com/​im/​android/​basics/​message#​%E5%AF%BC%E5%85%A5%E6%B6%88%E6%81%AF%E5%88%B0%E6%95%B0%E6%8D%AE%E5%BA%93|android导入消息至本地数据库]] 
 + 
 +[[http://​docs-im.easemob.com/​im/​ios/​basics/​message#​%E6%8F%92%E5%85%A5%E6%B6%88%E6%81%AF|iOS导入消息至本地数据库]] 
 + 
 + 
 +===== 新老兼容的平滑迁移 ===== 
 + 
 +新老兼容迁移的方式,是指在迁移过程中,环信IM服务器和原IM服务器同时提供服务,新应用和旧应用并存,支持新旧应用互通。待用户逐步更新至新应用,旧应用逐步无人使用后,原IM服务器停止服务。 
 + 
 +平滑迁移需要原服务支持并开通服务端消息路由功能(用户 A 给用户 B 发消息的过程中,服务器支持通过消息回调(也经常称为, callback, WebHook或者消息抄送服务)的模式将消息转发给开发者提供的服务器 URL 地址)。 
 + 
 +平滑迁移的主要内容如下: 
 + 
 +==== 1. 导入用户体系和群组信息 ==== 
 + 
 +与强制升级的步骤相同,请参考强制升级中的说明。 
 + 
 +==== 2. 利用消息路由功能完成新旧版本之间的消息互通 ==== 
 + 
 +如果需要老用户和新用户互相通信,老用户(需要注册一个环信的 ID 和老用户关联)可以发消息到自己的服务端,服务端来调环信的REST发送消息接口给新用户发送消息,新用户收到对方的消息,回复消息给老用户,先走到环信服务器,环信服务器调用旁路接口(自己服务器提供的一个接口)到自己服务器上,再由自己服务器的聊天系统发消息给客户端。 
 + 
 + 
 +注:在这里需要注意的是,新老用户之间发送文字容易处理,但是如果发送的消息里面带有附件情况,需要 User Server 提供可以上传下载附件的旁路接口,并且需要音视频转换的方法,目前环信客户端这边音频格式统一为 AMR 格式。
  
 {{ :​im:​other:​integrationcases:​image018.png?​nolink |新老用户通信过程}} {{ :​im:​other:​integrationcases:​image018.png?​nolink |新老用户通信过程}}
  
-注:如需了解数据迁移的详细过程,请联系环信。+=== 消息回调的开通 === 
 + 
 +消息回调为增值服务,需要联系商务开通,具体步骤可以参考下文档: 
 + 
 +[[http://​docs-im.easemob.com/​im/​extensions/​value/​rtmsgcallback?​s[]=%E6%B6%88%E6%81%AF%E5%9B%9E%E8%B0%83|消息回调]] 
 + 
 +=== 消息格式的转换 === 
 + 
 +环信IM服务的消息可能与旧的IM服务的消息格式稍有差别,要用户自己实现格式的转换。 
 +环信的消息支持文本消息,图片消息,语音消息,视频消息,位置消息等不同的类型,具体请参考: 
 + 
 +[[http://​docs-im.easemob.com/​im/​server/​basics/​chatrecord#​%E8%81%8A%E5%A4%A9%E8%AE%B0%E5%BD%95%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84|消息数据格式]] 
 + 
 +用户也可以参考Relay-server此部分的实现 
 + 
 +=== 语音消息的格式 === 
 + 
 +环信的移动端语音消息为amr格式,其中iOS端是录制后转换为amr格式,web端是由服务器端在下载语音消息时转换为mp3格式。如果旧的IM服务器支持的格式不符,需要适当的进行转换。 
 + 
 +用户也可以参考Relay-server此部分的实现 
 + 
 +==== 3. 平滑迁移Relay-server ==== 
 + 
 +环信为了更好帮助客户从云信、融云平台迁移到环信,环信开发平滑迁移服务(Relay-server),来完成 “利用消息路由功能完成新旧版本之间消息互通”。 
 +Relay-server 提供了大多数的消息转换,如:文字、语音、视频、图片、文件、位置等消息。 
 +客户只需要进行简单开发即可高度适配客户特有需求,如客户的自定义消息转换等。 
 +如有需要,请联系销售 
 + 
 +==== 其他迁移问题 ==== 
 + 
 +=== 推送问题 === 
 + 
 +为保证消息的到达率,环信IM服务支持各平台的推送通道,同时支持免打扰功能(即设定时间不收推送时,或者不接收某个群组的推送),如果旧的IM服务中有类似功能需要迁移的话,可以使用服务器的api提前设置,也可以使用SDK的api根据需要设置。 
 + 
 +[[http://​docs-im.easemob.com/​im/​server/​ready/​user#​%E8%AE%BE%E7%BD%AE%E5%85%8D%E6%89%93%E6%89%B0|免打扰设置]] 
 + 
 +=== 聊天室迁移 === 
 + 
 +聊天室一般是临时使用的场景中加入退出,因此建议在迁移时通过后台API创建聊天室,用户在需要时加入退出即可。 
 + 
 +=== 音视频功能迁移 === 
 + 
 +音视频功能涉及到信令和媒体流协议的不同,暂无法平滑迁移,建议一次性迁移至环信服务器
  
 ---- ----