环信 Web IM 获取好友列表失败
运行环境:
require('@/assets/lib/huanxin/webim.config.js')
require('@/assets/lib/huanxin/strophe-1.2.8.js')
require('easemob-websdk')
如题 用户登录,获取群组信息都成功, 但是获取好友有问题, 当使用串行请求时, 使用自己的测试appkey请求好友列表失败,改用官方demo的appkey请求成功, 当使用并发请求时两者都会失败, 错误代码16 , 即使单独请求好友列表也会失败, 代码如下:
export async function chatInit() {
if (window.CHAT) {
console.log('chatInit 已初始化过了!')
return window.CHAT
}
let conn = chatConnect();
let userHash = getUserHash();
let info = await getChatInfo(userHash)
let token = await chatLogin(info.data)
let group = await getGroup()
let roster = await getRoster()
// 获取好友列表失败: 使用官方demo的appkey并发请求,使用自己的测试appkey串行请求均失败, 仅使用官方key串行请求成功,偶尔失败 ,错误代码16 原因未知
// let [group, roster] = await Promise.all([getGroup(), getRoster()])
window.CHAT = {
conn,
token,
roster,
group
}
return window.CHAT
}
require('@/assets/lib/huanxin/webim.config.js')
require('@/assets/lib/huanxin/strophe-1.2.8.js')
require('easemob-websdk')
如题 用户登录,获取群组信息都成功, 但是获取好友有问题, 当使用串行请求时, 使用自己的测试appkey请求好友列表失败,改用官方demo的appkey请求成功, 当使用并发请求时两者都会失败, 错误代码16 , 即使单独请求好友列表也会失败, 代码如下:
export async function chatInit() {
if (window.CHAT) {
console.log('chatInit 已初始化过了!')
return window.CHAT
}
let conn = chatConnect();
let userHash = getUserHash();
let info = await getChatInfo(userHash)
let token = await chatLogin(info.data)
let group = await getGroup()
let roster = await getRoster()
// 获取好友列表失败: 使用官方demo的appkey并发请求,使用自己的测试appkey串行请求均失败, 仅使用官方key串行请求成功,偶尔失败 ,错误代码16 原因未知
// let [group, roster] = await Promise.all([getGroup(), getRoster()])
window.CHAT = {
conn,
token,
roster,
group
}
return window.CHAT
}
没有找到相关结果
已邀请:
2 个回复
空山
环信的conn实例的登录状态 states 更改, 不是在登录方法 open 的回调函数中执行, 而是在 全局的监听函数 conn.listen({ onOpened(){}}) 中执行, 并且重点是, onOpened 事件并不是在 open(success)钩子后同步执行,而是有一个延迟很大的异步, 因此如果包装 conn.open({success(){}}) 为promise, 则会出现各种奇怪错误, 报错为未登录, 比如 使用了 strophe 库的 getRouset, 但是 使用 ajax 的方法 getGroup 又不受影响
幻