跳转到主要内容

概述

会议外消息(IM)是一条独立于会议的通知通道。它解决的是「用户还没进会议时怎么被通知到」这类问题:
  • 有人在会议里呼叫你
  • 预约会议快开始了
  • 你在等候室里被放行了
  • 你负责的讨论小组请求协助
会中的聊天消息不走这条通道 —— 那是 会中消息,只在会议期间有效。

启用与停用

要点:
  • 必须先 login(token:),未登录调用会抛出 SMeetingError.notLoggedIn
  • logout() 内部会自动停用这条通道,你不需要在登出流程里重复调用
  • 通道建立后一直保持,与是否在会议中无关
  • enableIm() 成功后会触发一次 meeting(_:imDidConnect:),带本端 uid 与 IM 会话 sid(1.5.0 起)
  • 主动调用 disableIm() 不会触发 imDidDisconnect
1.4.1 及以前,enableIm() 只建立了通道,下面的呼叫、提醒、等候室放行、小组求助事件以及重连 / 断开回调实际都不会派发。依赖这些事件的接入需要升级到 1.5.0。
典型接入位置是登录成功之后:

事件

下面四个业务事件都带一个 base(ImBaseEventData)和一个 content:

有人呼叫你

会议提醒

planTime 为秒级时间戳,planDur 单位为分钟。

被放行出等候室

小组请求协助

原始消息

每条会议外消息都会先原样触发一次 imDidReceiveMessage,SDK 认识的 action 再额外派发到上面的具名事件(1.5.0 起)。业务自定义的 action 只能从这里拿到:
同一条已知消息会先后收到原始与具名两次回调,不要两边都处理。

连接状态

这条通道有自己独立的连接状态事件,不要和会议的重连事件混淆: ImDisconnectEventData 自 1.5.0 起另带结构化原因: 被动断开后通道已失效,需要时重新调用 enableIm()。 对应会议本身的连接事件是 meetingIsReconnecting(_:) / meetingDidReconnect(_:) / meeting(_:didDisconnect:)。

相关页面