使用 disconnect 方法登出IM后,可以调用 connect 重新登录。调用 getInstance 后会自动建立长连接,无需调用 connect
断开IM连接,并销毁IM实例。销毁实例后,无法调用 connect 重新连接。
注意,在9.9.0以及之前版本,调用 destroy 后,会直接触发 ondisconnect 回调函数,但此时长连接并未真正销毁。只有在 done 回调触发时才能保证长连接真正销毁。为了避免重连时多端互踢,用户应该在 destroy 的 done 回调中设置重连等操作
nim.destroy({
done: function(err) {
if (err) {
console.log('销毁实例失败', err)
} else {
console.log('销毁实例成功')
nim = null
}
}
})
done 回调。该回调需开发者自定义。
断开IM连接,但不销毁IM实例。调用 connect 重新登录后,会基于实例状态增量同步数据
注意,在9.9.0以及之前版本,调用 destroy 后,会直接触发 ondisconnect 回调函数,但此时长连接并未真正销毁。只有在 done 回调触发时才能保证长连接真正销毁。为了避免重连时多端互踢,用户应该在 destroy 的 done 回调中设置重连等操作
nim.disconnect({
done: function(err) {
if (err) {
console.log('断开连接失败', err)
} else {
console.log('断开连接成功')
}
}
})
done 回调。该回调需用户自定义。
获取当前登录状态. 稳定版自 8.9.127 以及 主干版本 9.16.2 起支持
注1: 0 的未登录包含了初始状态和登录失败的状态
注2: 3 的处于重连退避间隔中, 开发者不需要重新调用登录接口, 到期后 SDK 会自动重连.
var status = nim.getLoginStatus()
switch (status) {
case 0:
console.log('未登录')
break
case 1:
console.log('已登录')
break
case 2:
console.log('登录中')
break
case 3:
console.log('重连退避中')
break
}
返回当前登录状态. 0: 未登录, 1: 已登录, 2: 登录中, 3: 处于重连退避间隔中.
将使用同一 IM 账号登录的其他设备端踢下线。
// 踢掉其他端
nim.kick({
deviceIds: ['device-id-1', 'device-id-2'],
done: function(err) {
if (err) {
console.log('踢掉其他端失败', err)
} else {
console.log('踢掉其他端成功')
}
}
})
踢当前用户登录的其它端
done 回调。该回调需开发者自定义。
更新原 NIM 实例的初始化参数配置,可配置的参数与 NIM.getInstance 方法的可配置的参数相同。
任何需要更新初始化参数配置的场景。例如:
// 更新动态 token
nim.setOptions({
authType: 'token',
token: 'new-dynamic-token'
})
设置休眠状态
// 进入休眠模式
nim.setPowerMonitorStatus(1)
// 退出休眠模式
nim.setPowerMonitorStatus(0)
休眠状态,默认为 0,不休眠。
NIM 实例连接的基础接口定义