即时通信 IM 多设备登录

在正常情况下,一个用户ID(UserID)在同一时间只能在一个设备上接收到来电,如果用户在 PC 端登录后,又在手机端登录,那么只有手机端能收到后续的来电提醒。

相关产品
即时通信 IM 产品页,含版本规格、价格与购买入口。

一、功能简介

但是在一些办公场景、医疗场景等,用户需要在手机和电脑之间无缝切换,随时随地进行聊天、通话等,基于此我们推出了多设备登录功能,开启后,你的用户可以使用同一个 UserID 同时登录多个客户端(例如,一部 iPhone、一台 iPad 和一台 Windows PC),当收到来电时,所有登录的设备都会同时收到来电邀请并响起铃声,用户在任意一台设备上接听后,其他设备上的来电界面会自动消失,通话将在接听设备上建立。

注意:多设备登录是我们的高级功能,你需要购买或领取音视频通话能力(TUICallKit) 群组通话版的应用(SDKAppId),你也可以开通体验版免费试用,版本说明及开通指引参见 音视频通话能力版本。

二、开始接入

1. 你已经按照 快速接入 文档,将 TUICallKit SDK 集成到你的项目中,并能成功发起和接听一次基本的音视频通话。

2. 开启多设备登录,你只需在TUICallKit 登录成功后调用 enableMultiDeviceAbility API 即可,示例如下:

AndroidiOSFlutterWebuni-app (小程序)原生小程序// 以 Kotlin 为例// true: 开启多设备登录 false: 关闭多设备登录 (默认)TUICallEngine.createInstance(context).enableMultiDeviceAbility(true, null)// 以 Swift 为例// true: 开启多设备登录 false: 关闭多设备登录 (默认)TUICallEngine.createInstance().enableMultiDeviceAbility(enable: enable) { } fail: { code, message in }// true: 开启多设备登录 false: 关闭多设备登录 (默认)final result = await TUICallEngine.instance.enableMultiDeviceAbility(true);// true: 开启多设备登录 false: 关闭多设备登录 (默认)TUICallKitServer?.getTUICallEngineInstance()?.enableMultiDeviceAbility(true);// true: 开启多设备登录 false: 关闭多设备登录 (默认)TUICallKitServer?.getTUICallEngineInstance()?.enableMultiDeviceAbility(true);// true: 开启多设备登录 false: 关闭多设备登录 (默认)TUICallKitServer?.getTUICallEngineInstance()?.enableMultiDeviceAbility(true);

完成以上设置后,你的应用便成功开启了多设备登录功能。无需其他额外配置。

三、关键逻辑

为了帮助你更好地理解该功能并快速定位潜在问题,我们在此简要解析其背后的信令交互逻辑。

四、常见问题

如果不调用 enableMultiDeviceAbility API,默认行为是什么?

TUICallKit 默认是关闭多设备登录。在这种模式下,同一个 UserID 只有最后登录的设备能接收到呼叫,例如,用户先登录 PC,再登录手机,则只有手机能收到来电。

如果用户的网络不稳定,会不会出现两台设备都接听成功的情况?

A: 不会。TUICallKit 的信令后台具有原子性处理机制,它只认第一个到达的“接听”请求。一旦确认了一个接听设备,就会立刻向其他设备发送“取消”指令,确保通话的唯一性。

赞 (0)
上一篇 4天前
下一篇 4天前