监听聊天室事件
聊天室业务为客户端 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);