登录与登出

登录登出逻辑

登出 IM

切换 IM

如果需要切换 IM, 则需要断开连接后再使用新账号重新连接。操作步骤如下

若开发者有需求做无缝切换,则可对不同账号的IM连接实例做保持,由上层管理不同账号间的处理逻辑

    var nim1 = NIM.getInstance({
        account: 'nim1',
        // ...
    })
    var nim2 = NIM.getInstance({
        account: 'nim2',
        // ...
    })
    // nim1 nim2 ... nimN同时都会接收消息,都可发送消息及其它IM功能,请管理好相应实例方法的独立性,以及浏览器性能

更新 IM 配置

SDK 设计为单例模式, 如果需要更新当前 IM 的配置(部分配置不可更新,如用户账号), 那么可以通过两种方式完成:

// 断开 IM
nim.disconnect();
// 更新 token
nim.setOptions({
    token: 'newToken'
});
// 重新连接
nim.connect();

多端登录

云信支持多端同时登录, 即用户可以同时在移动端和网页端登录同一账号

初始化参数

示例代码

var nim = NIM.getInstance({
    onloginportschange: onLoginPortsChange
});
function onLoginPortsChange(loginPorts) {
    console.log('当前登录帐号在其它端的状态发生改变了', loginPorts);
}

参数解释

登录端

登录端代表登录在某个设备上的相关信息, 有如下字段

设备类型

目前云信支持的登录端有以下几种类型

踢其它端

示例代码

nim.kick({
    deviceIds: ['deviceId1'],
    done: onKick
});
function onKick(error, obj) {
    console.log('踢其它端' + (!error?'成功':'失败'));
    console.log(error);
    console.log(obj);
}

参数解释