监听聊天室事件
聊天室业务为客户端 App 提供三种类型的事件监听器:聊天室状态监听器、聊天室成员变化监听器、聊天室事件通知监听器。
通过 IMLib SDK 提供的以上委托,您可以从融云服务端获取聊天室销毁状态、用户在当前及其他客户端加入退出聊天室的状态、聊天室中成员进出的事件通知、以及聊天室中成员禁言、封禁相关的信息。
监听器 | 名称 | 说明 |
---|---|---|
ChatroomStatusListener* | 聊天室状态监听器 | 接收在当前客户端登录的用户加入、退出聊天室的事件与聊天室销毁状态的信息。 |
ChatroomMemberActionListener | 聊天室成员变化监听器 | 接收当前用户所在聊天室中其他用户加入、退出聊天室的信息。 |
ChatroomNotifyEventListener | 聊天室事件通知监听器 | 接收当前所在聊天室中成员禁言、封禁相关的信息;接收当前用户在其他端加入、退出聊天室相关的信息。 |
监听聊天室状态
您可以使用 setChatroomStatusListener
设置聊天室状态监听器来监听当前用户加入、退出聊天室的事件与已加入的聊天室销毁状态。。
接口原型
TypeScript
interface ChatroomStatusListener {
/**
* 开始加入聊天室的回调
* @param roomId 聊天室 id
*/
onChatroomJoining(roomId: string): void;
/**
* 加入聊天室成功的回调
* @param roomId 聊天室 id
* @param info 加入的聊天室信息
*/
onChatroomJoined(roomId: string, info: ChatroomJoinedInfo): any;
/**
* 加入聊天室失败的回调
* @param roomId 聊天室 id
* @param code 加入失败的错误码
* @discussion 如果 code 是 ChatroomKicked 或 ChatroomNotExist,则不会自动重新加入聊天室,App 需要按照自己的逻辑处理
*/
onChatroomJoinFailed(roomId: string, code: EngineError): any;
/**
* 退出聊天室成功的回调
* @param roomId 聊天室 id
*/
onChatroomQuited(roomId: string): any;
/**
* 聊天室被销毁的回调,用户在线的时候房间被销毁才会收到此回调
* @param roomId 聊天室 id
* @param type 聊天室销毁原因
*/
onChatroomDestroyed(roomId: string, type: ChatroomDestroyType): any;
}
示例代码
TypeScript
let listener: ChatroomStatusListener = {
onChatroomJoining(roomId: string): void {
},
onChatroomJoined(roomId: string, info: ChatroomJoinedInfo): void {
},
onChatroomJoinFailed(roomId: string, code: EngineError): void {
},
onChatroomQuited(roomId: string): void {
},
onChatroomDestroyed(roomId: string, type: ChatroomDestroyType): void {
},
}
IMEngine.getInstance().setChatroomStatusListener(listener);