多端登录与互踢策略
更新时间: 2024/08/20 15:45:46
功能概述
云信SDK支持多终端,并存在多端登录的现象。 当前云信SDK支持配置四种不同的 IM 多端登录策略:
- 只允许一端登录,Windows、Web、Android、iOS 彼此互踢
- 桌面PC 与 Web 端互踢、移动 Android 和 iOS 端互踢、桌面与移动端可同时登录
- 各端均可以同时登录在线
- 自定义多端登录配置
控制台配置
在控制台首页应用管理选择应用,再进入产品功能 > IM 即时通讯 > 基础功能 > 多端登录模式。
控制台修改多端互踢的逻辑之后,下次新的设备登录时才会基于新的多端互踢策略进行校验,已经建立连接的设备不会因为策略的修改被强制踢出。
只允许一端登录
当配置为只允许一端登录时,同一账号仅允许在一台设备上登录。当该账号在另一台设备上成功登录时,新设备会将旧设备踢下线。
桌面端互踢、移动端互踢、桌面与移动端同时登录
当配置为「桌面端互踢、移动端互踢、桌面与移动端同时登录」时,同一账号最多允许在1台桌面端设备(PC、Web)和1台移动端设备(iOS、Android)上同时登录并收发消息。
- 如果 SDK 相同,互踢。
- Windows SDK和Web SDK为一类,Android SDK和iOS SDK为另一类,这两类之间,同类互踢,不同类不互踢。
以下情况下新设备会将旧设备踢下线:
- 已经有一台桌面端设备(PC、Web)在线,在另一台桌面端设备(PC、Web)上成功登录。
- 已经有一台移动端设备(iOS、Android)在线,在另一台移动端设备(iOS、Android)上成功登录。
以下情况下新设备和旧设备可以共存:
- 已经有一台移动端设备(iOS、Android)在线,在另一台桌面端设备(PC、Web)上登录。
- 已经有一台桌面端设备(PC、Web)在线,在另一台移动端设备(iOS、Android)上登录。
各端均可以同时登录在线
最多可支持10个设备同时在线,在设备数上限内,所有的新设备再次登录,均不会将在线的旧设备踢下线。
自定义多端登录
功能配置
如上述三种登录策略不能满足要求,且 SDK 版本在 v7.8.0 及以上,云信 IM 可提供纯自定义的多端登录策略。
配置路径:在云信控制台首页应用管理选择应用,再进入产品功能 > IM 即时通讯 > 基础功能 > 多端登录模式,选择自定义多端登录配置并点击保存。
单击子功能配置,即可进行自定义多端登录策略配置。
如上图所示,云信提供 5 种内置终端类型,分别是 iOS、AOS(安卓)、Mac、PC、Web,内置终端类型之间,如有互踢要求,可在对应的行列中勾选互踢,保存后方可生效。
例如:需要将 iOS 与 AOS 之间实现互踢,则在表格中第二行第三列处勾选互踢。如下图所示:
当内置的终端类型不足以覆盖所有终端时,支持添加新的终端类型。点击下方添加按钮,选择自定义终端类型,并以整数数字命名新的终端类型名称,单击确定即可添加自定义的终端类型。
如需删除某一类终端,也可以勾选左侧复选框,点击删除去掉该类型。
配置完成后,点击保存,才可生效。
配置生效
各端登录时,客户端初始化时,需要配置自定义客户端类型。配置该字段后,遵循相应的自定义多端登录逻辑。若没有传,则认为是预定义的客户端类型(PC、AOS、PC、IOS、WEB)。具体方法可参考 API 文档中相关说明:
- iOS API 文档
sharedConfig
中的customClientType
- Android API 文档
LoginInfo
中的getCustomClientType
- Windows API 文档
- Web API 文档
NIMGetInstanceOptions
中的customClientType