Web

多端登录与互踢

更新时间: 2024/03/14 18:01:58

您可通过两种方式实现 IM 的多端登录与互踢。这里的“端”指的是设备端。

方式1:通过云信控制台配置

当前 NIM SDK 支持通过云信控制台配置四种不同的 IM 多端登录策略:

  • 只允许一端登录,Windows、Web、Android、iOS 彼此互踢。
  • 桌面端 PC 与 Web 互踢,移动端 Android 和 iOS 互踢,且桌面端与移动端可同时登录
  • 各端均可以同时登录在线(最多10个设备同时在线)
  • 自定义多端登录配置

通过该方式的配置,可实现自动管控 IM 的多端登录。具体如何配置,请参见多端登录与互踢策略

方式2:主动将其他端踢下线

  1. 初始化时注册 multiPortLogin 事件。

    用户使用相同 IM 账号登录不同设备时,将会触发 multiPortLogin 事件通知。

  2. 本端收到该事件通知后,调用 NIMInterface-kick 方法将其他设备端踢下线。

    当被踢下线的设备端收到被踢事件,建议应用返回登录界面。

jsnim.on('kicked', function () { console.log('被踢') })


const multiDeviceIds = []
nim.on('multiPortLogin', (result) => {
  if (result && result.length > 0) {
    const ids = result.map((item: any) => item.online && item.deviceId)
    multiDeviceIds = multiDeviceIds.concat(ids)
  }
})

async function kick() {
  const result = await nim.kick({
    deviceIds: multiDeviceIds
  })
  multiDeviceIds = []
  console.log('kick success!!')
},
此文档是否对你有帮助?
有帮助
去反馈
  • 方式1:通过云信控制台配置
  • 方式2:主动将其他端踢下线