跳转至

聊天室

聊天室功能详见: 直播聊天室解决方案

加入

参数说明:

参数 类型 必填 说明 最低版本
chatRoomId String 聊天室 id 2.2.0
count Number 拉取聊天数, 范围 0 - 50 2.2.0

代码示例:

var chatRoomId = 'chatroom1';
var count = 10;
RongIMClient.getInstance().joinChatRoom(chatRoomId, count, {
  onSuccess: function() {
    console.log('加入聊天室成功');
  },
  onError: function(error) {
    console.log('加入聊天室失败', error);
  }
});

退出

代码示例:

var chatRoomId = "chatroom1"; // 聊天室 Id
RongIMClient.getInstance().quitChatRoom(chatRoomId, {
  onSuccess: function() {
    console.log('退出聊天室成功');
  },
  onError: function(error) {
    console.log('退出聊天室失败');
  }
});

获取信息

参数说明:

参数 类型 必填 说明 最低版本
chatRoomId String 聊天室 id 2.2.0
count Number 获取人数, 范围 0 - 20 2.2.0
order Number 排序方式, 1 正序, 2 倒序 2.2.0

代码示例:

var chatRoomId = 'chatroom1';
var count = 10;
var order = RongIMLib.GetChatRoomType.REVERSE;
RongIMClient.getInstance().getChatRoomInfo(chatRoomId, count, order, {
  onSuccess: function(chatRoom) {
    /*
        chatRoom.userInfos  聊天室成员信息
        chatRoom.userTotalNums  聊天室总人数
      */
    console.log('获取聊天室信息成功', chatRoom);
  },
  onError: function(error) {
    console.log('获取聊天室信息失败', error);
  }
});

历史消息

该功能需开通聊天室消息云存储服务后才能使用

参数说明:

参数 类型 必填 说明 最低版本
chatRoomId String 聊天室 id 2.2.0
count Number 获取消息数, 范围 0 - 20 2.2.0
order Number 排序方式, 1 正序, 2 倒序 2.2.0

代码示例:

var chatRoomId = 'chatroom1';
var count = 10;
var order = RongIMLib.GetChatRoomType.REVERSE;
RongIMClient.getInstance().getChatRoomHistoryMessages(chatRoomId, count, order, {
  onSuccess: function(list, hasMore) {
    console.log('获取聊天室历史消息成功');
  },
  onError: function(error) {
    // 请检查: 是否开通聊天室消息云存储服务
    console.log('获取聊天室历史消息失败');
  }
});

属性自定义

为指定聊天室以 Key、Value 方式自定义设置属性信息,此服务需要在开发者后台开通 IM 商用版后,开通使用。

应用场景

1、语音直播室场景, 可用于做会场属性的同步, 如房间内的成员属性, 麦位上的人员等

2、狼人杀等卡牌类的游戏场景, 可用于记录用户的角色, 牌局状态等

警告

每个聊天室中, 最多允许设置 100 个属性信息, 以 Key、Value 的方式进行存储, 每个聊天室中每秒钟最多允许操作 Key、Value 100 次

聊天室销毁后, 聊天室中的自定义属性同时销毁

设置

仅聊天室中不存在此属性 或 属性设置者为自己时, 可设置成功

参数说明:

参数 类型 必填 说明 最低版本
chatRoomId String 聊天室 id 2.5.3
chatroomEntry Object 设置的属性信息 2.5.3

chatroomEntry 说明:

参数 类型 必填 说明 最低版本
key String 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符 2.5.3
value Object 属性对应的值, 最大长度 4096 字符 2.5.3
isSendNotification Boolean 设置成功后是否发送通知消息. 如果为 true, 则聊天室其他用户会接收到 RC:chrmKVNotiMsg 类型通知消息 2.5.3
notificationExtra String RC:chrmKVNotiMsg 消息中携带的附加信息 2.5.3
isAutoDelete Boolean 用户退出聊天室时是否清除此属性 2.5.3

代码示例:

var chatRoomId = 'chatroom1';
var key = 'role';
var value = 'Werewolf';
var chatroomEntry = {
  key: key,
  value: value,
  isAutoDelete: false,
  isSendNotification: true,
  notificationExtra: 'Change role'
};
RongIMClient.getInstance().setChatroomEntry(chatRoomId, chatroomEntry, {
  onSuccess: function() {
    console.log('设置聊天室属性成功');
  },
  onError: function(error) {
    // 请检查: 是否开通聊天室属性自定义服务
    console.log('设置聊天室属性失败', error);
  }
});
强制设置

强制修改/创建任意聊天室属性

参数说明:

参数 类型 必填 说明 最低版本
chatRoomId String 聊天室 id 2.5.3
chatroomEntry Object 设置的属性信息 2.5.3

chatroomEntry 说明:

参数 类型 必填 说明 最低版本
key String 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符 2.5.3
value Object 属性对应的值, 最大长度 4096 字符 2.5.3
isSendNotification Boolean 设置成功后是否发送通知消息. 如果为 true, 则聊天室其他用户会接收到 RC:chrmKVNotiMsg 类型通知消息 2.5.3
notificationExtra String RC:chrmKVNotiMsg 消息中携带的附加信息 2.5.3
isAutoDelete Boolean 用户退出聊天室时是否清除此属性 2.5.3

代码示例:

var chatRoomId = 'chatroom1';
var key = 'count';
var value = '8';
var chatroomEntry = {
  key: key,
  value: value,
  isAutoDelete: false,
  isSendNotification: true,
  notificationExtra: 'Change Count'
};
RongIMClient.getInstance().forceSetChatroomEntry(chatRoomId, chatroomEntry, {
  onSuccess: function() {
    console.log('强制设置聊天室属性成功');
  },
  onError: function(error) {
    // 请检查: 是否开通聊天室属性自定义服务
    console.log('强制设置聊天室属性失败', error);
  }
});
删除

仅能删除自己设置的聊天室属性

参数说明:

参数 类型 必填 说明 最低版本
chatRoomId String 聊天室 id 2.5.3
chatroomEntry Object 设置的属性信息 2.5.3

chatroomEntry 说明:

参数 类型 必填 说明 最低版本
key String 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符 2.5.3
isSendNotification Boolean 删除成功后是否发送通知消息. 如果为 true, 则聊天室其他用户会接收到 RC:chrmKVNotiMsg 类型通知消息 2.5.3
notificationExtra String RC:chrmKVNotiMsg 消息中携带的附加信息 2.5.3

代码示例:

var chatRoomId = 'chatroom1';
var key = 'role';
var chatroomEntry = {
  key: key,
  isSendNotification: true,
  notificationExtra: 'Change role'
};
RongIMClient.getInstance().removeChatroomEntry(chatRoomId, chatroomEntry, {
  onSuccess: function() {
    console.log('删除聊天室属性成功');
  },
  onError: function(error) {
    // 请检查: 是否开通聊天室属性自定义服务
    console.log('删除聊天室属性失败', error);
  }
});
强制删除

强制删除任意聊天室属性

参数说明:

参数 类型 必填 说明 最低版本
chatRoomId String 聊天室 id 2.5.3
chatroomEntry Object 设置的属性信息 2.5.3

chatroomEntry 说明:

参数 类型 必填 说明 最低版本
key String 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符 2.5.3
isSendNotification Boolean 删除成功后是否发送通知消息. 如果为 true, 则聊天室其他用户会接收到 RC:chrmKVNotiMsg 类型通知消息 2.5.3
notificationExtra String RC:chrmKVNotiMsg 消息中携带的附加信息 2.5.3

代码示例:

var chatRoomId = 'chatroom1';
var key = 'role';
var chatroomEntry = {
  key: key,
  isSendNotification: true,
  notificationExtra: 'Change role'
};
RongIMClient.getInstance().forceRemoveChatroomEntry(chatRoomId, chatroomEntry, {
  onSuccess: function() {
    console.log('强制删除聊天室属性成功');
  },
  onError: function(error) {
    // 请检查: 是否开通聊天室属性自定义服务
    console.log('强制删除聊天室属性失败', error);
  }
});
获取

获取指定属性信息

参数说明:

参数 类型 必填 说明 最低版本
chatRoomId String 聊天室 id 2.5.3
key String 聊天室属性名 2.5.3

代码示例:

var chatRoomId = 'chatroom1';
var key = 'role';
RongIMClient.getInstance().getChatroomEntry(chatRoomId, key, {
  onSuccess: function(value) {
    console.log('获取聊天室属性信息成功', value);
  },
  onError: function(error) {
    console.log('获取聊天室属性信息失败', error);
  }
});
获取全部

代码示例:

var chatRoomId = 'chatroom1';
var key = 'role';
RongIMClient.getInstance().getAllChatroomEntries(chatRoomId, {
  onSuccess: function(entries) {
    console.log('获取所有聊天室属性信息成功', entries);
    /* 
      {
        role: 'Werewolf',
        count: '8'
      }
    */
  },
  onError: function(error) {
    console.log('获取所有聊天室属性信息失败', error);
  }
});

常见问题

聊天室集成常见问题, 详细请参见文档