开发者中心
All
Agora.io 社区
如何将指定用户移出频道?
分类: 集成类    平台: Android / iOS / macOS / Web / Windows / Linux / Unity / Cocos Creator / Electron / RESTful / React Native / Flutter   最后更新时间: 2020/11/11 21:27:47

在实时音视频互动场景中,通常会有将指定用户移出频道的需求。Agora 根据实际场景需求,提供如下三种解决方案:

方案一

场景:通话结束后,用户(多见于 Web 用户)忘记离开频道。虽然没有实际通话,但会产生用量。
方案:为防止这种情况发生,可以使用音量提示回调(onAudioVolumeIndication),或在 app 层监测用户在一段时间内是否发布音频流,来确定用户是否在通话中。如否,则在 app 逻辑中,调用 leaveChannel 主动下线。

方案二

场景:有些日程安排类 app 需要按设定时间结束通话或会议。如会议定于 10 点开始,时长 1 个小时,则 app 需要在 11 点左右结束当前会议。
方案:你可以选择如下任意一种方案实现:

  • 使用 Token 的有效时间戳 (privilegeExpiredTs 参数)。将 Token 的有效时间戳设为会议结束的时间,超过了这个时间,用户就自动被移出频道。详见在服务端生成 Token
  • 使用服务端 RESTful API 实现踢人功能。在 app 逻辑中记住用户 ID 以及频道名,然后使用创建踢人规则 API 将指定用户移出频道。你可以将封人时间(time 参数)设为 0,保证用户离开当前频道后,可以加入其他频道。详见创建踢人规则

方案三

场景:在直播间,如果遇到连麦用户发表不良言论等情况,房主需要让该用户离开直播间。
方案:你可以搭配使用 RTM 的点对点消息功能。通过 sendMessageToPeer 发送下线通知,对方通过 onMessageReceived 回调收到该消息后,主动调用 RTC SDK 的 leaveChannel 方法离开频道。

score