差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
|
im:web:intro:integration [2020/06/29 06:47] zhangdong [配置] |
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文件 | ||
| 行 95: | 行 109: | ||
| 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, // 是否开启多页面同步收消息,注意,需要先联系商务开通此功能 | ||
| 行 103: | 行 117: | ||
| autoReconnectNumMax: 2, // 断线重连最大次数 | autoReconnectNumMax: 2, // 断线重连最大次数 | ||
| - | heartBeatWait: 4500, // 使用webrtc(视频聊天)时发送心跳包的时间间隔,单位ms | + | heartBeatWait: 30000, // 心跳间隔(只在小程序中使用) |
| - | delivery: true, // 是否发送已读回执 | + | delivery: false, // 是否发送已读回执 |
| - | useOwnUploadFun: false // 是否使用自己的上传方式(如将图片文件等上传到自己的服务器,构建消息时只传url) | + | useOwnUploadFun: false, // 是否使用自己的上传方式(如将图片文件等上传到自己的服务器,构建消息时只传url) |
| + | |||
| + | deviceId: 'webim' // 设备ID,默认可不传,如果传一个固定值,在没开启多端登录的情况下同一个账号会互踢 | ||
| </code> | </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 文件内进行以下配置: | 2.0 SDK,在 webim.config.js 文件内进行以下配置: | ||
| 行 128: | 行 161: | ||
| autoReconnectNumMax: 2, // 断线重连最大次数 | autoReconnectNumMax: 2, // 断线重连最大次数 | ||
| - | |||
| - | autoReconnectInterval: 2, // 断线重连时间间隔 | ||
| - | heartBeatWait: 4500, // 使用webrtc(视频聊天)时发送心跳包的时间间隔,单位ms | + | autoReconnectInterval: 3, // 断线重连每次尝试连接的间隔 |
| + | |||
| + | heartBeatWait: 30000, // 使用webrtc(视频聊天)时发送心跳包的时间间隔,单位ms | ||
| delivery: true, // 是否发送已读回执 | delivery: true, // 是否发送已读回执 | ||