差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
im:web:intro:integration [2019/11/28 02:33]
lizg [配置]
im:web:intro:integration [2022/02/15 08:58] (当前版本)
zhangdong [NPM]
行 1: 行 1:
 ====== Web IM 集成介绍 ====== ====== Web IM 集成介绍 ======
 +
 +===== 准备条件 =====
 +
 +**如果要实现RTC功能,你需要满足以下条件:**
 +
 +   * **你已分别创建了环信应用及声网应用**
 +   * **已完成环信IM的基本功能,包括登录、好友、群组以及会话等的集成**
 +   * **上线之前开通声网token验证时,用户需要实现自己的AppServer,根据环信ID,​生成Token,创建Token服务及使用AppServer生成Token的过程参见https://​docs.agora.io/​cn/​live-streaming/​token_server**
 +   * **我们提供了开源的AppServer,可以供参考:https://​github.com/​easemob/​easemob-im-app-server/​tree/​master/​agora-app-server**
  
 ===== 搭建本地测试环境 ===== ===== 搭建本地测试环境 =====
行 62: 行 71:
 <code javascript>​ <code javascript>​
 import websdk from "​easemob-websdk"​ import websdk from "​easemob-websdk"​
 +</​code>​
 +
 +如果是 Typescript, 这样引入类型 EasemobChat:
 +<code javascript>​
 +import websdk, { EasemobChat } from '​easemob-websdk'​
 </​code>​ </​code>​
  
行 68: 行 82:
 ====引用本地文件==== ====引用本地文件====
  
-1. 下载demo后,将sdk目录下的 webimSDK.js、EMedia_x1v1.js、EMedia_sdk-dev.js 拷贝到系统相应的目录下。+1. 下载demo后,将sdk目录下的 webimSDK.js(现SDK包命名为websdk+版本号的形式,​例如:websdk3.4.2.js)、EMedia_x1v1.js、EMedia_sdk-dev.js,按照实际项目需求选择对应的SDK拷贝到系统相应的目录下。**PS:websdk:提供全功能即时通讯SDK接口,Emedia:​提供音视频功能相关SDK接口。如需音视频功能,EMedia_x1v1.js与EMedia_sdk-dev.js只引用EMedia_x1v1.js即可**
  
 2.新版本中 WebIMConfig 文件只做参数定义方便实例化 SDK 时使用,仅与自己项目结构有关。详细使用可以查看 /​demo/​src/​config/​WebIM.js文件 2.新版本中 WebIMConfig 文件只做参数定义方便实例化 SDK 时使用,仅与自己项目结构有关。详细使用可以查看 /​demo/​src/​config/​WebIM.js文件
行 80: 行 94:
  
 **注意:**Web SDK 向下兼容V1.1.2和V1.1.1。关于详细的引用文件和配置参数(WebIMConfig)的方法,请查看本页“兼容性”的内容。 **注意:**Web SDK 向下兼容V1.1.2和V1.1.1。关于详细的引用文件和配置参数(WebIMConfig)的方法,请查看本页“兼容性”的内容。
 +
 +初始化 WebIM.connection 和 构造消息 WebIM.message, 需要在中间加上 default,​如:WebIM.default.message。
  
  
行 85: 行 101:
 3.0 SDK,在 WebIMConfig.js 文件内进行以下配置: 3.0 SDK,在 WebIMConfig.js 文件内进行以下配置:
 <code javascript>​ <code javascript>​
-xmppURL: '//​im-api-v2.easemob.com/​ws', ​   // xmpp Server地址,vip6集群 地址 ​ '//​im-api-vip6-v2.easemob.com/​ws' ​ +socketServer: '//​im-api-v2.easemob.com/​ws', ​   // socket ​Server地址 
-apiURL: '//​a1.easemob.com', ​              // rest Server地址,vip6集群 地址 ​ '//​a1-vip6.easemob.com'​+ 
 +restServer: '//​a1.easemob.com', ​              // rest Server地址 
 appkey: '​easemob-demo#​chatdemoui', ​       // App key appkey: '​easemob-demo#​chatdemoui', ​       // App key
  
 https : false, ​                           // 是否使用https https : false, ​                           // 是否使用https
  
-isHttpDNS: true,                          // 3.0 SDK支持,防止DNS劫持从服务端获取XMPPUrl、restUrl ​+isHttpDNS: true,                          // 3.0 SDK支持,防止DNS劫持从服务端获取XMPPUrl、restUrl
  
 isMultiLoginSessions:​ false, ​             // 是否开启多页面同步收消息,注意,需要先联系商务开通此功能 isMultiLoginSessions:​ false, ​             // 是否开启多页面同步收消息,注意,需要先联系商务开通此功能
- 
-isAutoLogin:​ true,                        // 自动出席,(如设置为false,则表示离线,无法收消息,需要在登录成功后手动调用conn.setPresence()才可以收消息) 
  
 isDebug: false, ​                          // 打开调试,会自动打印log,在控制台的console中查看log isDebug: false, ​                          // 打开调试,会自动打印log,在控制台的console中查看log
行 101: 行 117:
 autoReconnectNumMax:​ 2,                   // 断线重连最大次数 autoReconnectNumMax:​ 2,                   // 断线重连最大次数
  
-autoReconnectInterval2                ​// 断线重连时间间隔+heartBeatWait30000                    ​// 心跳间隔(只在小程序中使用)
  
-heartBeatWait4500                     // 使用webrtc(视频聊天)时发送心跳包的时间间隔,单位ms+deliveryfalse                          ​// 是否发送已读回执
  
-deliverytrue                          ​// 是否发送已读回执+useOwnUploadFunfalse        ​// 是否使用自己的上传方式(如将图片文件等上传到自己的服务器,构建消息时只传url) 
 + 
 +deviceId: '​webim' ​              // 设备ID,默认可不传,如果传一个固定值,在没开启多端登录的情况下同一个账号会互踢
 </​code>​ </​code>​
  
-2.0 SDK 及 小程序 ​SDK,在 webim.config.js 文件内进行以下配置:+''​注意:''​ 
 + 
 +''​为满足不同客户的业务需求,环信在多地部署了数据中心。不同数据中心的REST API请求域名、WebSocket访问域名不同。请根据您所在数据中心进行配置。''​ 
 + 
 +''​环信不同数据中心的REST API请求域名、WebSocket访问域名: ''​ 
 +|数据中心|REST API请求地址|WebSocket访问域名| 
 +|国内1区|a1.easemob.com 或 a1.easecdn.com|im-api-v2.easemob.com 或 im-api-v2.easecdn.com| 
 +|国内2区|a31.easemob.com 或 a31.easecdn.com|im-api-v2-31.easemob.com 或 im-api-v2-31.easecdn.com| 
 +|国内VIP区|请咨询商务经理|请咨询商务经理| 
 +|客服专用|请咨询商务经理|请咨询商务经理| 
 +|新加坡1区|a1-sgp.easemob.com 或 a1-sgp.easecdn.com|im-api-sgp-v2.easemob.com 或 im-api-sgp-v2.easecdn.com| 
 +|美东1区|a41.easemob.com 或 a41.easecdn.com|msync-api-41.easemob.com 或 msync-api-41.easecdn.com| 
 +|法兰克福1区|a51.easemob.com 或 a51.easecdn.com|msync-api-51.easemob.com 或 msync-api-51.easecdn.com| 
 +''​ 应用所在数据中心可以在环信用户管理后台>​应用信息中查看:[[https://​console.easemob.com/​app/​im-service/​detail|Console中查看请求域名]] ''​ 
 + 
 +{{:​im:​server:​ready:​console查看可用区.jpg?​800|}} 
 + 
 +2.0 SDK,在 webim.config.js 文件内进行以下配置:
  
 <code javascript>​ <code javascript>​
 xmppURL: '//​im-api.easemob.com', ​          // xmpp Server地址,对于在console.easemob.com创建的appKey,固定为该值  ​ xmppURL: '//​im-api.easemob.com', ​          // xmpp Server地址,对于在console.easemob.com创建的appKey,固定为该值  ​
-                                           // vip6集群 地址 ​ '//​im-api-vip6.easemob.com'​+                                          ​
 apiURL: '​http://​a1.easemob.com', ​          // rest Server地址,对于在console.easemob.com创建的appkey,固定为该值  ​ apiURL: '​http://​a1.easemob.com', ​          // rest Server地址,对于在console.easemob.com创建的appkey,固定为该值  ​
-                                           // ​ vip6集群 地址 ​ '//​a1-vip6.easemob.com'​+                                          ​
 appkey: '​easemob-demo#​chatdemoui', ​        // App key appkey: '​easemob-demo#​chatdemoui', ​        // App key
  
行 122: 行 157:
  
 isMultiLoginSessions:​ false, ​              // 是否开启多页面同步收消息,注意,需要先联系商务开通此功能 isMultiLoginSessions:​ false, ​              // 是否开启多页面同步收消息,注意,需要先联系商务开通此功能
- 
-isAutoLogin:​ true,                         // 自动出席,(如设置为false,则表示离线,无法收消息,需要在登录成功后手动调用conn.setPresence()才可以收消息) 
  
 isDebug: false, ​                           // 打开调试,会自动打印log,在控制台的console中查看log isDebug: false, ​                           // 打开调试,会自动打印log,在控制台的console中查看log
  
 autoReconnectNumMax:​ 2,                    // 断线重连最大次数 autoReconnectNumMax:​ 2,                    // 断线重连最大次数
-  
-autoReconnectInterval:​ 2,                  // 断线重连时间间隔 
  
-heartBeatWait: ​4500                      ​// 使用webrtc(视频聊天)时发送心跳包的时间间隔,单位ms+autoReconnectInterval:​ 3,                  // 断线重连每次尝试连接的间隔 
 + 
 +heartBeatWait: ​30000                     // 使用webrtc(视频聊天)时发送心跳包的时间间隔,单位ms
  
 delivery: true,                            // 是否发送已读回执 delivery: true,                            // 是否发送已读回执