差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
im:web:intro:integration [2019/07/05 06:46]
zhaoliang [引用本地文件]
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。
  
  
 ===== 配置 ===== ===== 配置 =====
- +3.0 SDK,在 WebIMConfig.js 文件内进行以下配置:
-在 webim.config.js 文件内进行以下配置: +
 <code javascript>​ <code javascript>​
-xmppURL: '​im-api.easemob.com', ​           // xmpp Server地址,对于在console.easemob.com创建的appKey,固定为该值+socketServer: '//im-api-v2.easemob.com/ws', ​   // socket ​Server地址
  
-apiURL: 'http://​a1.easemob.com', ​         // rest Server地址,对于在console.easemob.com创建的appkey,固定为该值+restServer: '//​a1.easemob.com', ​              ​// rest Server地址
  
 appkey: '​easemob-demo#​chatdemoui', ​       // App key appkey: '​easemob-demo#​chatdemoui', ​       // App key
行 95: 行 109:
 https : false, ​                           // 是否使用https https : false, ​                           // 是否使用https
  
-isHttpDNS: true,                         ​//​防止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
行 105: 行 117:
 autoReconnectNumMax:​ 2,                   // 断线重连最大次数 autoReconnectNumMax:​ 2,                   // 断线重连最大次数
  
-autoReconnectInterval: 2,                 ​// 断线重连时间间隔+heartBeatWait30000, ​                    // 心跳间隔(只在小程序中使用) 
 + 
 +delivery: false, ​                          // 是否发送已读回执 
 + 
 +useOwnUploadFun:​ false, ​        // 是否使用自己的上传方式(如将图片文件等上传到自己的服务器,构建消息时只传url) 
 + 
 +deviceId: '​webim' ​              // 设备ID,默认可不传,如果传一个固定值,在没开启多端登录的情况下同一个账号会互踢 
 +</​code>​ 
 + 
 +''​注意:''​ 
 + 
 +''​为满足不同客户的业务需求,环信在多地部署了数据中心。不同数据中心的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>​ 
 +xmppURL: '//​im-api.easemob.com'​          // xmpp Server地址,对于在console.easemob.com创建的appKey,固定为该值 ​  
 +                                           
 +apiURL: '​http://​a1.easemob.com', ​          // rest Server地址,对于在console.easemob.com创建的appkey,固定为该值 ​  
 +                                           
 +appkey: '​easemob-demo#​chatdemoui', ​        // App key 
 + 
 +https : false, ​                            // 是否使用https 
 + 
 +isHttpDNS: true,                           // 防止DNS劫持从服务端获取XMPPUrl、restUrl 
 + 
 +isMultiLoginSessions:​ false, ​              // 是否开启多页面同步收消息,注意,需要先联系商务开通此功能 
 + 
 +isDebug: false, ​                           // 打开调试,会自动打印log,在控制台的console中查看log 
 + 
 +autoReconnectNumMax:​ 2,                    ​// 断线重连最大次数 
 + 
 +autoReconnectInterval:​ 3,                  // 断线重连每次尝试连接的间隔
  
-heartBeatWait: ​4500                      ​// 使用webrtc(视频聊天)时发送心跳包的时间间隔,单位ms+heartBeatWait: ​30000                     // 使用webrtc(视频聊天)时发送心跳包的时间间隔,单位ms
  
-delivery: true,                           ​// 是否发送已读回执+delivery: true,                            // 是否发送已读回执
  
 </​code>​ </​code>​