登录

更新时间: 2024/03/11 17:23:29

完成 NIM SDK 的初始化之后,用户需要先调用 SDK 的登录接口登录 IM。登录成功后,用户才能正常调用消息和会话等其他 SDK 接口。

前提条件

  • 登录前,请确保已初始化 SDK
  • 已在云信控制台配置应用的 IM 登录策略。如未配置相应的登录策略,可能导致后续调用登录接口时因无登录权限而报错(状态码:403)。
  • (可选)已在控制台配置客户端应用标识

实现方法

调用 login 方法进行登录。

参数说明类型说明
appKey String您的应用在云信的账号(App Key)
如果不填,则使用初始化时填入 App Key;如果调用本接口时填入,则使用新填入的 App Key
account String用户的 IM 账号(即 accid)
password StringToken,对应账号的密码
cbLoginCallback登录流程的回调函数
jsonExtension StringJSON 扩展参数

示例代码:

let [loginResult] = await node_nim.nim.client.login('appkey', 'account', 'password', null, '')
if (loginResult.res_code_ == node_nim.NIMResCode.kNIMResSuccess) {
    console.log('login succeeded')
} else {
    console.log('login failed')
}

登录步骤(NIMLoginStep)主要为以下过程:

枚举值 对应值 说明
kNIMLoginStepLinking 0 正在连接服务器
kNIMLoginStepLink 1 连接服务器成功
kNIMLoginStepLogining 2 正在登录
kNIMLoginStepLogin 3 登录成功

后续步骤

登录 IM 后,可以正常调用消息和会话等其他 SDK 接口。

例如调用 sendMsg 接口发送消息:

node_nim.nim.talk.sendMsg(
    {
        session_type_: node_nim.NIMSessionType.kNIMSessionTypeP2P,
        receiver_accid_: 'receiver',
        type_: node_nim.NIMMessageType.kNIMMessageTypeText,
        content_: 'Send from NIM node quick start.'
    },
    ''
)

相关参考

多端登录与互踢

您可通过两种方式实现 IM 的多端登录与互踢。

  • 通过云信控制台配置四种不同的 IM 多端登录策略,具体请参见多端登录与互踢策略
  • 通过调用 kickOtherClient 接口将同一账号的其他端踢下线。

注销登录

注销 IM 登录(即登出)后,用户将不再接收 IM 的消息。如果应用退出时 IM 仍处于登录状态,请调用 logout 接口登出。

登出过程因为涉及到和云信服务端的交互以及需要将缓存中的数据持久化到本地,因此回调通知会有 1-20 秒左右的延迟。因此会需要上层界面等待的情况,开发者可以通过暂时隐藏 UI,让进程等待退出完成的回调后再执行清理 SDK,退出程序的工作。

登出类型通过 NIMLogoutType 来定义:

枚举值 对应值 说明
kNIMLogoutChangeAccout 1 注销/切换帐号(返回到登录界面)
kNIMLogoutKickout 2 被踢(返回到登录界面)
kNIMLogoutAppExit 3 程序退出
kNIMLogoutRelogin 4 重连操作,包括保存密码时启动程序伪登录后的重连操作以及掉线后的重连操作(帐号未变化)

清理

在程序退出前,可调用接口 cleanup 进行 NIM SDK 的清理工作。

此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 实现方法
  • 后续步骤
  • 相关参考
  • 多端登录与互踢
  • 注销登录
  • 清理