创建和管理聊天室

更新时间:2022-02-28

本文介绍如何创建和管理聊天室。

环信即时通讯 IM SDK 提供以下方法支持聊天室的创建、获取、修改和删除等管理功能:

  • getChatRooms 分页获取聊天室;
  • createChatRoom 创建聊天室;
  • getChatRoomDetails 获取聊天室详情;
  • joinChatRoom 加入聊天室;
  • quitChatRoom 退出聊天室;
  • destroyChatRoom 解散聊天室。

开始前,请确保满足以下条件:

  • 完成 SDK 初始化,详见 快速开始
  • 了解环信即时通讯 IM 的 API 使用限制,详见 使用限制
  • 了解环信即时通讯 IM 聊天室不同版本的数量限制,详见环信即时通讯 IM 价格
  • 聊天室创建者和管理员的数量之和不能超过 100 ,即管理员最多可添加 99 个。

分页获取聊天室

用户可调用 getChatRooms 从服务器获取指定数目的聊天室列表,能获取到的最大数量为 1,000。

示例代码如下:

let option = {
    pagenum: 1,
    pagesize: 20
};
conn.getChatRooms(option).then(res => console.log(res))

创建聊天室

创建聊天室需要 添加超级管理员, 调用 createChatRoom 函数创建聊天室,示例如下:

示例代码如下:

let options = {
    name: 'chatRoomName', // 聊天室名称。
    description: 'description', // 聊天室描述。
    maxusers: 200, // 聊天室最大成员数(包括聊天室创建者),默认值 200,最大不超过 5,000。
    members: ['user1', 'user2'] // 聊天室成员。此属性可选,但是如果包含此项,数组元素至少一个。
}
conn.createChatRoom(options).then(res => console.log(res))

获取聊天室详情

用户可调用 getChatRoomDetails 获取聊天室的基本信息。

示例代码如下:

let option = {
    chatRoomId: 'chatRoomId'
}
conn.getChatRoomDetails(option).then(res => console.log(res))

加入聊天室

用户可调用 joinChatRoom 进入具体的聊天室。

注意

  • 聊天室所有成员都可调用该接口;
  • 其他成员会收到 memberJoinChatRoomSuccess 监听事件。

示例代码如下:

let option = {
    roomId: 'roomId',
    message: 'reason'
}
conn.joinChatRoom(option).then(res => console.log(res))

退出聊天室

用户可调用 quitChatRoom 退出当前聊天室。

注意

  • 聊天室所有成员都可调用该接口;
  • 其他成员会收到 leaveChatRoom 的监听事件。

示例代码如下:

let option = {
    roomId: 'roomId'
}
conn.quitChatRoom(option).then(res => console.log(res))

解散聊天室

解散聊天室需要 添加超级管理员, 调用 destroyChatRoom 函数解散聊天室,示例如下:

示例代码如下:

let option = {
    chatRoomId: 'chatRoomId'
}
conn.destroyChatRoom(option).then(res => console.log(res))

设置聊天室相关回调

conn.addEventHandler('chatroomEvent', {
    onChatroomChange: (msg) => { 
        switch(msg.type){
            case 'rmChatRoomMute':
            // 解除聊天室一键禁言。
                break;
            case 'muteChatRoom':
            // 聊天室一键禁言。
                break;
            case 'rmUserFromChatRoomWhiteList':
            // 将成员移出聊天室白名单。
                break;
            case 'addUserToChatRoomWhiteList':
            // 添加成员至聊天室白名单。
                break;
            case 'deleteAnnouncement':
            // 删除聊天室公告。
                break;
            case 'updateAnnouncement':
            // 更新聊天室公告。
                break;
            case 'removeMute':
            // 解除禁言。
                break;
            case 'addMute':
            // 禁言。
                break;
            case 'removeAdmin':
            // 移除管理员。
                break;
            case 'addAdmin':
            // 添加管理员。
                break;
            case 'changeOwner':
            // 转让聊天室。
                break;
            case 'leaveChatRoom':
            // 退出聊天室。
                break;
            case 'memberJoinChatRoomSuccess':
            // 加入聊天室。
                break;
            default:
                break;
        }
    }
})