差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
im:web:intro:basic [2020/06/29 06:49] zhangdong [创建连接] |
im:web:intro:basic [2022/08/03 10:19] (当前版本) jennifer.zeng |
||
---|---|---|---|
行 4: | 行 4: | ||
<code javascript> | <code javascript> | ||
- | var conn = {}; | + | let conn = {}; |
WebIM.config = config; | WebIM.config = config; | ||
- | conn = WebIM.conn = new WebIM.default.connection({ | + | conn = WebIM.conn = new WebIM.connection({ |
appKey: WebIM.config.appkey, | appKey: WebIM.config.appkey, | ||
isHttpDNS: WebIM.config.isHttpDNS, | isHttpDNS: WebIM.config.isHttpDNS, | ||
isMultiLoginSessions: WebIM.config.isMultiLoginSessions, | isMultiLoginSessions: WebIM.config.isMultiLoginSessions, | ||
https: WebIM.config.https, | https: WebIM.config.https, | ||
- | url: WebIM.config.xmppURL, | + | url: WebIM.config.socketServer, |
- | apiUrl: WebIM.config.apiURL, | + | apiUrl: WebIM.config.restServer, |
isAutoLogin: WebIM.config.isAutoLogin, | isAutoLogin: WebIM.config.isAutoLogin, | ||
- | heartBeatWait: WebIM.config.heartBeatWait, | ||
autoReconnectNumMax: WebIM.config.autoReconnectNumMax, | autoReconnectNumMax: WebIM.config.autoReconnectNumMax, | ||
autoReconnectInterval: WebIM.config.autoReconnectInterval, | autoReconnectInterval: WebIM.config.autoReconnectInterval, | ||
- | isStropheLog: WebIM.config.isStropheLog, | ||
delivery: WebIM.config.delivery, | delivery: WebIM.config.delivery, | ||
useOwnUploadFun: WebIM.config.useOwnUploadFun | useOwnUploadFun: WebIM.config.useOwnUploadFun | ||
行 28: | 行 26: | ||
<code javascript> | <code javascript> | ||
conn.listen({ | conn.listen({ | ||
- | onOpened: function ( message ) {}, //连接成功回调 | + | onOpened: function () {}, //连接成功回调 |
- | onClosed: function ( message ) {}, //连接关闭回调 | + | onClosed: function () {}, //连接关闭回调 |
onTextMessage: function ( message ) {}, //收到文本消息 | onTextMessage: function ( message ) {}, //收到文本消息 | ||
onEmojiMessage: function ( message ) {}, //收到表情消息 | onEmojiMessage: function ( message ) {}, //收到表情消息 | ||
行 37: | 行 35: | ||
onLocationMessage: function ( message ) {},//收到位置消息 | onLocationMessage: function ( message ) {},//收到位置消息 | ||
onFileMessage: function ( message ) {}, //收到文件消息 | onFileMessage: function ( message ) {}, //收到文件消息 | ||
+ | onCustomMessage: function ( message ) {}, //收到自定义消息 | ||
onVideoMessage: function (message) { | onVideoMessage: function (message) { | ||
var node = document.getElementById('privateVideo'); | var node = document.getElementById('privateVideo'); | ||
行 69: | 行 68: | ||
onReadMessage: function(message){}, //收到消息已读回执 | onReadMessage: function(message){}, //收到消息已读回执 | ||
onCreateGroup: function(message){}, //创建群组成功回执(需调用createGroupNew) | onCreateGroup: function(message){}, //创建群组成功回执(需调用createGroupNew) | ||
- | onMutedMessage: function(message){} //如果用户在A群组被禁言,在A群发消息会走这个回调并且消息不会传递给群其它成员 | + | onMutedMessage: function(message){}, //如果用户在A群组被禁言,在A群发消息会走这个回调并且消息不会传递给群其它成员 |
+ | onChannelMessage: function(message){} //收到整个会话已读的回执,在对方发送channel ack时会在这个回调里收到消息 | ||
}); | }); | ||
</code> | </code> | ||
行 83: | 行 83: | ||
appKey: WebIM.config.appkey, | appKey: WebIM.config.appkey, | ||
success: function () { }, | success: function () { }, | ||
- | error: function () { }, | + | error: function (err) { |
- | apiUrl: WebIM.config.apiURL | + | let errorData = JSON.parse(err.data); |
+ | if (errorData.error === 'duplicate_unique_property_exists') { | ||
+ | console.log('用户已存在!'); | ||
+ | } else if (errorData.error === 'illegal_argument') { | ||
+ | if (errorData.error_description === 'USERNAME_TOO_LONG') { | ||
+ | console.log('用户名超过64个字节!') | ||
+ | }else{ | ||
+ | console.log('用户名不合法!') | ||
+ | } | ||
+ | } else if (errorData.error === 'unauthorized') { | ||
+ | console.log('注册失败,无权限!') | ||
+ | } else if (errorData.error === 'resource_limited') { | ||
+ | console.log('您的App用户注册数量已达上限,请升级至企业版!') | ||
+ | } | ||
+ | }, | ||
}; | }; | ||
conn.registerUser(options); | conn.registerUser(options); | ||
行 96: | 行 110: | ||
<code javascript> | <code javascript> | ||
var options = { | var options = { | ||
- | apiUrl: WebIM.config.apiURL, | ||
user: 'username', | user: 'username', | ||
pwd: 'password', | pwd: 'password', | ||
行 106: | 行 119: | ||
=== 使用 Token 登录 === | === 使用 Token 登录 === | ||
- | 1. 使用用户名/密码登录,获取Token。 | + | 1. 使用用户名/密码登录,获取 Token。 |
<code javascript> | <code javascript> | ||
var options = { | var options = { | ||
- | apiUrl: WebIM.config.apiURL, | ||
user: 'username', | user: 'username', | ||
pwd: 'password', | pwd: 'password', | ||
行 127: | 行 139: | ||
<code javascript> | <code javascript> | ||
var options = { | var options = { | ||
- | apiUrl: WebIM.config.apiURL, | ||
user: 'username', | user: 'username', | ||
accessToken: 'token', | accessToken: 'token', | ||
行 140: | 行 151: | ||
</code> | </code> | ||
+ | |||
+ | ===== 上传推送 token ===== | ||
+ | 如果把 SDK 用在原生客户端,集成第三方推送功能,可以调用此方法将 token 上传到环信服务器 | ||
+ | <code javascript> | ||
+ | /** | ||
+ | * @param {Object} options - | ||
+ | * @param {Object} options.deviceId - 设备 ID,可以自己定义,一般用来标识同一个设备 | ||
+ | * @param {Object} options.deviceToken - 推送 token | ||
+ | * @param {Object} options.notifierName - 推送服务的 appId,对于 FCM 是 senderId,对于 VIVO 是 “appId+#+AppKey ” | ||
+ | */ | ||
+ | conn.uploadToken(options); | ||
+ | </code> | ||
+ | |||
+ | ===== 修改推送昵称 ===== | ||
+ | 在注册时可以设置一个昵称,这个昵称用来在推送消息时显示,可以调用下面API修改昵称 | ||
+ | <code javascript> | ||
+ | conn.updateCurrentUserNick('newNick') | ||
+ | </code> | ||
===== 常见问题 ===== | ===== 常见问题 ===== | ||
行 146: | 行 175: | ||
Q: 是否支持重连?\\ | Q: 是否支持重连?\\ | ||
- | A: 支持。1.未使用DNS:当前连接不能建立时会尝试重新连接,连接次数可在config里配置;2.使用DNS:当前连接不能建立时,会根据DNSconfig的地址逐一尝试连接。 | + | A: 支持。1.未使用 DNS:当前连接不能建立时会尝试重新连接,连接次数可在 config 里配置;2.使用 DNS:当前连接不能建立时,会根据 DNSconfig 的地址逐一尝试连接。 |
- | Q: ws有上行没有下行? \\ | + | Q: ws 有上行没有下行? \\ |
- | A: 可能是浏览器缓存了错误的ws返回结果,解决办法是加个时间戳参数,强制浏览器不走缓存。 | + | A: 可能是浏览器缓存了错误的 ws 返回结果,解决办法是加个时间戳参数,强制浏览器不走缓存。 |
- | Q: 收到提示“您的连接不是私密连接”,怎么处理?\\ | + | Q: 收到提示 “您的连接不是私密连接”,怎么处理?\\ |
{{:start:400webimintegration:adf9103523f68fd739b92c9a7143f239.jpg?nolink|}}\\ | {{:start:400webimintegration:adf9103523f68fd739b92c9a7143f239.jpg?nolink|}}\\ | ||
- | A: chrome53屏蔽了赛门铁克的某些日期颁发的证书,升级chrome就可以解决。详细信息可查看:http://www.jkeabc.com/376605.html 或者 https://sslmate.com/blog/post/ct_redaction_in_chrome_53。 | + | A: chrome53 屏蔽了赛门铁克的某些日期颁发的证书,升级 chrome 就可以解决。详细信息可查看:http://www.jkeabc.com/376605.html 或者 https://sslmate.com/blog/post/ct_redaction_in_chrome_53。 |