跳到主要内容

聊天室状态监听

聊天室业务支持客户端 App 监听以下类型的聊天室操作事件:聊天室房间的状态变化与本端聊天室相关操作、用户在当前及其他客户端加入退出聊天室的状态、聊天室中成员进出的事件通知、以及聊天室中成员禁言、封禁相关的信息。

设置聊天室操作监听器

通过 addEventListener 可以设置监听器。

调用示例: addEventListener(Events.CHATROOM, listener)

const listener = (event) => {
if (event.rejoinedRoom) {
console.log('SDK 内部重连聊天室信息:', event.rejoinedRoom)
}
if (event.updatedEntries) {
console.log('监听到的聊天室 KV 更新:', event.updatedEntries)
}
if (event.userChange) {
console.log('加入退出的用户通知:', event.userChange)
}
if (event.chatroomDestroyed) {
console.log('聊天室销毁:', event.chatroomDestroyed)
}
/* since 5.7.9 */
if (event.chatroomNotifyMultiLoginSync) {
console.log('加入退出多端同步通知:', event.chatroomNotifyMultiLoginSync)
}
/* since 5.7.9 */
if (event.chatroomNotifyBlock) {
console.log('聊天室用户封禁通知:', event.chatroomNotifyBlock)
}
/* since 5.7.9 */
if (event.chatroomNotifyBan) {
console.log('聊天室用户禁言通知:', event.chatroomNotifyBan)
}
}
RongIMLib.addEventListener(Events.CHATROOM, listener)

聊天室销毁事件

下方列出了聊天室销毁事件。

事件触发时机说明
event.chatroomDestroyed当前用户在线,且所在聊天室被销毁返回数据包括:聊天室 ID。

聊天室成员变化事件

本端用户加入、退出聊天室时默认会触发 event.userChange 事件。

提示

如果需要监听聊天室中其他人员的变动,需要开通服务,请提交工单,申请开通聊天室成员变化监听

事件触发时机说明
event.userChange用户加入、退出聊天室IChatroomUserChangeInfo 封装了当前聊天室中加入或退出聊天室的成员信息。如果当前用户由于网络原因和聊天室断开连接,则无法监听到断开连接期间的其他成员的加入、退出行为。

多端登录事件通知

提示

SDK 从 5.4.5 版本开始支持监听以下事件通知。

在用户在多端登录情况下,在其他客户端加入、退出聊天室时,触发 event.chatroomNotifyMultiLoginSync 事件。返回数据详细定义参见 IChatroomNotifyMultiLoginSync

触发场景通知范围说明
用户多端登录,在一台设备上加入聊天室当前加入的用户当前用户在一端加入聊天室时,其他端的在线设备上会接收通知,不在线的设备不会通知。返回数据包括:聊天室 ID、加入时间。
用户多端登录,在一台设备上退出聊天室当前退出的用户当前用户在一端退出聊天室时,其他端的在线设备上会接收通知,不在线的设备不会通知。 返回数据包括:聊天室 ID、退出时间。
用户多端登录且已在聊天室中,加入一个新的聊天室导致被踢出上一个聊天室当前用户,和被踢出的聊天室所有成员如果在控制台开通了单个用户加入多个聊天室,则不会通知。返回数据包括:聊天室 ID、被踢出的时间。

封禁相关事件通知

提示

SDK 从 5.4.5 版本开始支持监听以下事件通知。

用户所在聊天室发生了封禁、解封的事件,且调用相关 Server API 时指定了需要通知(指定 needNotifytrue),触发 event.chatroomNotifyBlock 事件。返回数据详细定义参见 IChatroomNotifyBlock

触发场景通知范围说明
封禁聊天室用户聊天室中所有成员返回数据包括:聊天室 ID、被封禁成员用户 ID 列表、封禁时间与持续时长、附加信息。
解除封禁聊天室用户被解除封禁的成员返回数据包括:聊天室 ID、当前用户 ID、附加信息。

禁言相关事件通知

提示

SDK 从 5.4.5 版本开始支持监听以下事件通知。

用户所在聊天室发生了禁言、解除禁言相关的事件,且调用相关 Server API 时指定了需要通知(指定 needNotifytrue),触发 event.chatroomNotifyBan 事件。返回数据详细定义参见 IChatroomNotifyBan

触发场景通知范围说明
禁言指定聊天室用户聊天室中所有成员返回数据包括:聊天室 ID、被封禁成员用户 ID 列表、禁言时间与持续时长、附加信息。
取消禁言指定聊天室用户聊天室中所有成员返回数据包括:聊天室 ID、被封禁成员用户 ID 列表、解除禁言时间、附加信息。
设置聊天室全体禁言聊天室中所有成员返回数据包括:聊天室 ID、禁言时间、附加信息。
取消聊天室全体禁言聊天室中所有成员返回数据包括:聊天室 ID、解除禁言时间、附加信息。
加入聊天室全体禁言白名单聊天室中所有成员返回数据包括:聊天室 ID、被添加白名单的用户 ID 列表、设置白名单时间、附加信息。
移出聊天室全体禁言白名单聊天室中所有成员返回数据包括:聊天室 ID、被移出白名单的用户 ID 列表、移出白名单时间、附加信息。
全局禁言用户被全局禁言的用户返回数据包括:聊天室 ID、禁言时间与持续时长、附加信息。
取消全局禁言用户被解除全局禁言的用户返回数据包括:聊天室 ID、解除禁言时间、附加信息。