聊天室管理

环信 Web IM SDK 支持聊天室管理功能的集成,集成后可以进行如下操作:

  • 获取聊天室列表
  • 加入聊天室
  • 退出聊天室
  • 发送消息
  • 接收及处理消息
  • 聊天室相关回调

通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。

调用getChatRooms函数获取聊天室列表,示例如下:

// 列出所有聊天室,支持分页查询
var listRooms = function () {
    var option = {
        apiUrl: 'https://a1.easemob.com',
        pagenum: 1,                                 // 页数
        pagesize: 20,                               // 每页个数
        success: function (list) {
            console.log(list);
        },
        error: function () {
            console.log('List chat room error');
        }
    };
    conn.getChatRooms(option);
}

API

示例中使用到的 API


调用joinChatRoom加入聊天室,示例如下:

var joinRoom = function () {
    // 加入聊天室
    conn.joinChatRoom({
        roomId: 'chatroom id' // 聊天室id
    });
};

API

示例中使用到的 API


调用quitChatRoom退出聊天室,示例如下:

var quitRoom = function () {
    // 退出聊天室
    conn.quitChatRoom({
        roomId: 'chatroom id' // 聊天室id
    });
}

API

示例中使用到的 API


发送消息


开启和关闭全员禁言

owner和管理员可以开启和关闭全员禁言。

//聊天室中禁言所有成员
var options = {
      chatRoomId: "chatRoomId", //聊天室id
      success: function (resp) {},
      error: function(e){}
    };
conn.disableSendChatRoomMsg(options);

//聊天室中解除所有成员禁言
conn.enableSendChatRoomMsg(options)

API

示例中使用到的 API


白名单管理

可以将用户添加到白名单中,用户白名单在管理员开启了全员禁言时生效,可以运行白名单用户发出消息。 另外可以将用户移出白名单,检查自己是否在白名单中以及获取白名单列表。

//添加用户到白名单
var options = {
    chatRoomId: "chatRoomId", //聊天室id
    users: ["user1", "user2"], //成员id列表
    success: function (resp) {},
    error: function(e){}
};
conn.addUsersToChatRoomWhitelist(options);

//将用户从白名单移除
var options = {
    chatRoomId: "chatRoomId", //群组id
    userName: "user", //要移除的成员
    success: function (resp) {},
    error: function(e){}
}
conn.rmUsersFromChatRoomWhitelist(options)

//从服务器获取白名单成员列表
var options = {
    chatRoomId: "chatRoomId", //聊天室id
    success: function (resp) {},
    error: function(e){}
}
conn.getChatRoomWhitelist(options)

//查询成员是否是白名单用户,操作权限:app admin可查询所有用户;app user可查询自己
var options = {
    chatRoomId: "chatRoomId", //聊天室id
    userName: "user", //要查询的成员
    success: function (resp) {},
    error: function(e){}
}
conn.isChatRoomWhiteUser(options)

API

  • 群聊接收及处理消息同单聊;
  • 消息体与单聊消息根据 message 的 type 进行区分;
  • 单聊为:chat,群聊为:groupchat,聊天室为:chatroom;
  • 根据消息的类型进行不同处理即可。
conn.listen({
  onPresence: function ( message ) {
    handlePresence(message);
  }
});


var handlePresence = function ( e ) {
  /*e.type === 'memberJoinChatRoomSuccess'   // 加入成功
    e.type === 'deleteGroupChat'             // 聊天室被删除
    e.type === 'joinChatRoomFailed'          // 加入失败*/
};

API

示例中使用到的 API



上一页:群组