登录与登出
登录登出逻辑
- SDK进行连接的过程,同时也会执行相应的登录逻辑,若登录成功,则会在初始化设置的
onconnect
回调中得到相应的登录信息。若登录失败,也将会在ondisconnect
回调中获得相应的失败信息。 - 连接状态初始化可参见:初始化SDK
登出 IM
- 初始化SDK之后, SDK 会自动登录
- 在收到
onconnect
回调后可以调用nim.disconnect();
来登出 SDK - 登出 SDK 后可以调用
nim.connect();
来重新登入 SDK
切换 IM
如果需要切换 IM, 则需要断开连接后再使用新账号重新连接。操作步骤如下
若开发者有需求做无缝切换,则可对不同账号的IM连接实例做保持,由上层管理不同账号间的处理逻辑
var nim1 = NIM.getInstance({
account: 'nim1',
// ...
})
var nim2 = NIM.getInstance({
account: 'nim2',
// ...
})
// nim1 nim2 ... nimN同时都会接收消息,都可发送消息及其它IM功能,请管理好相应实例方法的独立性,以及浏览器性能
更新 IM 配置
SDK 设计为单例模式, 如果需要更新当前 IM 的配置(部分配置不可更新,如用户账号), 那么可以通过两种方式完成:
- 再次调用
NIM.getInstance
方法,仅需传入需要更改配置的部分(不建议,因为使用不当,会出现实例引用逻辑混乱的问题) - 对原有实例调用
setOptions
方法, 参数列表和格式跟NIM.getInstance保持一致, 以更新 token 为例
// 断开 IM
nim.disconnect();
// 更新 token
nim.setOptions({
token: 'newToken'
});
// 重新连接
nim.connect();
多端登录
云信支持多端同时登录, 即用户可以同时在移动端和网页端登录同一账号
初始化参数
- 这里的参数并不是所有的初始化参数, 请查阅初始化SDK, 以及其它章节的初始化参数
示例代码
var nim = NIM.getInstance({
onloginportschange: onLoginPortsChange
});
function onLoginPortsChange(loginPorts) {
console.log('当前登录帐号在其它端的状态发生改变了', loginPorts);
}
参数解释
onloginportschange
: 多端登录状态变化的回调, 会收到登录端列表, 以下情况会收到此回调- 登录时其它端在线
- 登录后其它端上线或者下线
登录端
登录端代表登录在某个设备上的相关信息, 有如下字段
type
: 登录的设备类型os
: 登录设备的操作系统mac
: 登录设备的 mac 地址deviceId
: 登录设备ID, uuidaccount
: 登录的帐号connectionId
: 登录设备分配的连接号ip
: 登录的服务器 IPtime
: 登录时间online
: 是否在线
设备类型
目前云信支持的登录端有以下几种类型
'Android'
(安卓)'iOS'
(苹果)'PC'
(桌面,这里默认指代windows)'Web'
(浏览器)'Mac'
(桌面)
踢其它端
示例代码
nim.kick({
deviceIds: ['deviceId1'],
done: onKick
});
function onKick(error, obj) {
console.log('踢其它端' + (!error?'成功':'失败'));
console.log(error);
console.log(obj);
}
参数解释
- 其它登录端的设备号可以在
onloginportschange
回调里获取, 参考登录端对象
本篇文档内容是否对您有帮助?


此文档对你是否有帮助
×


×