聊天室状态监听
聊天室业务支持客户端 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 时指定了需要通知(指定 needNotify
为 true
),触发 event.chatroomNotifyBlock
事件。返回数据详细定义参见 IChatroomNotifyBlock。
触发场景 | 通知范围 | 说明 |
---|---|---|
封禁聊天室用户 | 聊天室中所有成员 | 返回数据包括:聊天室 ID、被封禁成员用户 ID 列表、封禁时间与持续时长、附加信息。 |
解除封禁聊天室用户 | 被解除封禁的成员 | 返回数据包括:聊天室 ID、当前用户 ID、附加信息。 |
禁言相关事件通知
提示
SDK 从 5.4.5 版本开始支持监听以下事件通知。
用户所在聊天室发生了禁言、解除禁言相关的事件,且调用相关 Server API 时指定了需要通知(指定 needNotify
为 true
),触发 event.chatroomNotifyBan
事件。返回数据详细定义参见 IChatroomNotifyBan。
触发场景 | 通知范围 | 说明 |
---|---|---|
禁言指定聊天室用户 | 聊天室中所有成员 | 返回数据包括:聊天室 ID、被封禁成员用户 ID 列表、禁言时间与持续时长、附加信息。 |
取消禁言指定聊天室用户 | 聊天室中所有成员 | 返回数据包括:聊天室 ID、被封禁成员用户 ID 列表、解除禁言时间、附加信息。 |
设置聊天室全体禁言 | 聊天室中所有成员 | 返回数据包括:聊天室 ID、禁言时间、附加信息。 |
取消聊天室全体禁言 | 聊天室中所有成员 | 返回数据包括:聊天室 ID、解除禁言时间、附加信息。 |
加入聊天室全体禁言白名单 | 聊天室中所有成员 | 返回数据包括:聊天室 ID、被添加白名单的用户 ID 列表、设置白名单时间、附加信息。 |
移出聊天室全体禁言白名单 | 聊天室中所有成员 | 返回数 据包括:聊天室 ID、被移出白名单的用户 ID 列表、移出白名单时间、附加信息。 |
全局禁言用户 | 被全局禁言的用户 | 返回数据包括:聊天室 ID、禁言时间与持续时长、附加信息。 |
取消全局禁言用户 | 被解除全局禁言的用户 | 返回数据包括:聊天室 ID、解除禁言时间、附加信息。 |