事件监听
添加监听器
addEventListener 方法用来接收来自于 IMLib 内的各种事件通知,同类型事件可以多次添加不同的监听函数。绑定仅执行一次的事件 可以使用 onceEventListener。
const Events = RongIMLib.Events
RongIMLib.addEventListener(Events.MESSAGES, (evt) => {
console.log(evt.messages)
})
移除监听
业务层需注意在必要时使用 removeEventListener 或 removeEventListeners 移除对指定事件的监听函数,以免造成内存泄露。
removeEventListeners
将移除对某一特定事件的所有监听函数。
const Events = RongIMLib.Events
const listener = (evt) => console.log(evt.messages)
// 添加具体事件监听器
RongIMLib.addEventListener(Events.MESSAGES, listener)
// 移除具体事件监听器
RongIMLib.removeEventListener(Events.MESSAGES, listener)
// 移除具体事件的所有监听器
RongIMLib.removeEventListeners(Events.MESSAGES)
事件
事件名称 | 事件返回值类型 | 事件说明 | 版本 |
---|---|---|---|
CONNECTING | void | 链接中 | |
CONNECTED | void | 已链接 | |
DISCONNECT | ErrorCode | 已断开 注意:5.7.0 版本起,回调参数的类型由 ConnectionStatus 变更为 ErrorCode | |
SUSPEND | ErrorCode | 链接异常断开(自动重连) 注意:5.7.0 版本起,回调参数的类型由 ConnectionStatus & ErrorCode变更为 ErrorCode | |
MESSAGES | IMessagesEvent | 收到消息 | |
READ_RECEIPT_RECEIVED | IReadReceiptReceivedEvent | 收到已读回执(单聊) | |
MESSAGE_RECEIPT_REQUEST | IMessageReceiptRequestEvent | 收到已读回执请求(群聊) | |
MESSAGE_RECEIPT_RESPONSE | IMessageReceiptResponseEvent | 收到已读回执响应(群聊) | |
CONVERSATION | IConversationEvent | 收到会话变更通知 | |
CHATROOM | IChatroomListenerData | 收到聊天室变更通知。注意:如需监听聊天室成员变化,请提交工单申请开通服务。 | |
EXPANSION | IExpansionListenerData | 收到扩展变更通知 | |
PULL_OFFLINE_MESSAGE_FINISHED | void | 离线消息拉取完成 | |
TAG | void | (适用于多端登录场景)收到标签列表标签通知,表示用户可能在其他端创建、移除或编辑某个标签。收到此通知时需主动调用 getTags 获取全部标签以更新 UI 渲染。该标签列表包含了所有用于标记会话的标签。 | |
CONVERSATION_TAG | void | (适用于多端登录场景)收到会话标签变动通知,表示用户可能在其他端修改了会话上所加的标签。收到此通知时需根据本地已渲染的会话列表,主动调用 getTagsFromConversation 逐个获取会话的所有标签,以更新 UI 渲染。 | |
TYPING_STATUS | ITypingStatusEvent | 收到正在输入状态通知 | |
MESSAGE_BLOCKED | IBlockedMessageInfo | 敏感词回调通知。需要提交工单开启服务后才能使用。默认关闭状态。 | 5.0.2 |
ULTRA_GROUP_ENABLE | IAReceivedConversation | 超级群会话列表同步完成,可以调用超级群相关接口 | 5.2.0 |
OPERATE_STATUS | IOperateStatusNotify | 超级群输入状态通知 | 5.2.0 |
ULTRA_GROUP_MESSAGE_EXPANSION_UPDATED | IAReceivedMessage | 超级群消息扩展更新通知 | 5.2.0 |
ULTRA_GROUP_MESSAGE_MODIFIED | IAReceivedMessage | 超级群消息被修改通知 | 5.2.0 |
ULTRA_GROUP_MESSAGE_RECALLED | IAReceivedMessage | 超级群消息被撤回通知 | 5.2.0 |
ULTRA_GROUP_CHANNEL_TYPE_CHANGE | IUltraChannelChangeInfo | 超级群频道类型变更 | 5.4.2 |
ULTRA_GROUP_CHANNEL_DELETE | IUltraChannelDeleteInfo | 超级群频道被删除 | 5.4.2 |
ULTRA_GROUP_CHANNEL_USER_KICKED | IUltraChannelUserKickedInfo | 超级群私有频道成员被移除 | 5.4.2 |
DATABASE_UPGRADE_WILL_START | void | 数据库升级开始,仅 Electron 支持 | 5.10.4 |
DATABASE_UPGRADING | number | 数据库升级中,仅 Electron 支持 | 5.10.4 |
DATABASE_UPGRADE_DID_COMPLETE | ErrorCode | 数据库升级结束,仅 Electron 支持 | 5.10.4 |
GROUP_OPERATION | IGroupOperationInfo | 群组操作回调,可根据 IGroupOperationInfo 中的 operation 判断操作类型 | 5.12.0 |
GROUP_INFO_CHANGED | IGroupInfoChanged | 群组信息变更通知 | 5.12.0 |
GROUP_MEMBER_INFO_CHANGED | IGroupMemberInfoChanged | 群成员信息变更通知 | 5.12.0 |
GROUP_APPLICATION_EVENT | IGroupApplicationInfo | 用户申请或邀请事件及结果通知 | 5.12.0 |
GROUP_REMARK_CHANGED_SYNC | IGroupRemarkChangedSync | 群名称备注名更新多端同步通知 | 5.12.0 |
GROUP_FOLLOWS_CHANGED_SYNC | IGroupFollowsChangedSync | 群成员特别关注多端同步通知 | 5.12.0 |
FRIEND_ADDED | IFriendAdd | 添加好友通知 | 5.12.0 |
FRIEND_DELETE | IFriendDelete | 移除好友通知 | 5.12.0 |
FRIEND_APPLICATION_STATUS_CHANGED | IFriendApplicationStatusChange | 好友申请通知 | 5.12.0 |
FRIEND_CLEARED | number | 清楚全部好友通知,通过 Server Api 调用清除全部好友出发 | 5.12.0 |
FRIEND_INFO_CHANGED_SYNC | IFriendInfoChangedSync | 多端同步好友信息变更通知 | 5.12.0 |