更新时间: 2020-08-27
可在指定聊天室中设置自定义属性,用于语音直播聊天室场景的会场属性同步或狼人杀等卡牌类游戏场景中记录用户的角色和牌局状态等。
- 每个聊天室中,最多允许设置 100 个属性信息,以
Key-Value
的方式进行存储。 - 每个聊天室中,每秒钟最多允许操作
Key-Value
100 次。 - 聊天室销毁后,聊天室中的自定义属性同时销毁。
- 使用此功能需要在开发者后台免费基础功能中开通 聊天室属性自定义设置 (opens new window)功能。
Web 回调方法需在 im.watch
中增加 chatroom
事件,为避免设置重复,可移步 监听设置
# 设置属性
仅聊天室中不存在此属性 或 属性设置者为自己时, 可设置成功
# 参数说明
实例化参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
id | String | 是 | 聊天室 id | 3.0.2 |
设置参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
key | String | 是 | 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符 | 3.0.2 |
value | String | 是 | 属性对应的值, 最大长度 4096 字符 | 3.0.2 |
isSendNotification | Boolean | 否 | 设置成功后是否发送通知消息 | 3.0.2 |
notificationExtra | String | 否 | RC:chrmKVNotiMsg 消息中携带的附加信息 | 3.0.2 |
isAutoDelete | Boolean | 否 | 用户退出聊天室时是否清除此属性 | 3.0.2 |
# 代码示例
实例化
// 注: im 实例通过 RongIMLib.init 获取(单个页面仅需初始化一次) var chatRoom = im.ChatRoom.get({ id: 'chatRoom1' });
已复制
1
2
3
4
2
3
4
设置
var key = 'role'; var value = 'Werewolf'; chatRoom.setEntry({ key: key, value: value, isAutoDelete: false, isSendNotification: true, notificationExtra: 'Change role' }).then(function() { console.log('设置聊天室属性成功'); });
已复制
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 强制设置属性
强制修改/创建任意聊天室属性
# 参数说明
实例化参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
id | String | 是 | 聊天室 id | 3.0.2 |
强制设置参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
key | String | 是 | 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符 | 3.0.2 |
value | String | 是 | 属性对应的值, 最大长度 4096 字符 | 3.0.2 |
isSendNotification | Boolean | 否 | 设置成功后是否发送通知消息. | 3.0.2 |
notificationExtra | String | 否 | RC:chrmKVNotiMsg 消息中携带的附加信息 | 3.0.2 |
isAutoDelete | Boolean | 否 | 用户退出聊天室时是否清除此属性 | 3.0.2 |
# 代码示例
实例化
// 注: im 实例通过 RongIMLib.init 获取(单个页面仅需初始化一次) var chatRoom = im.ChatRoom.get({ id: 'chatRoom1' });
已复制
1
2
3
4
2
3
4
强制设置
var key = 'count'; var value = '8'; chatRoom.forceSetEntry({ key: key, value: value, isAutoDelete: false, isSendNotification: true, notificationExtra: 'Change Count' }).then(function() { console.log('强制设置聊天室属性成功'); });
已复制
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 删除属性
仅能删除自己设置的聊天室属性
# 参数说明
实例化参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
id | String | 是 | 聊天室 id | 3.0.2 |
设置参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
key | String | 是 | 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符 | 3.0.2 |
isSendNotification | Boolean | 否 | 删除成功后是否发送通知消息 | 3.0.2 |
notificationExtra | String | 否 | RC:chrmKVNotiMsg 消息中携带的附加信息 | 3.0.2 |
# 代码示例
实例化
// 注: im 实例通过 RongIMLib.init 获取(单个页面仅需初始化一次) var chatRoom = im.ChatRoom.get({ id: 'chatRoom1' });
已复制
1
2
3
4
2
3
4
删除
var key = 'role'; chatRoom.removeEntry({ key: key, isSendNotification: true, notificationExtra: 'Change role' }).then(function() { console.log('删除聊天室属性成功'); });
已复制
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 强制删除属性
强制删除任意聊天室属性
# 参数说明
实例化参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
id | String | 是 | 聊天室 id | 3.0.2 |
强制删除参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
key | String | 是 | 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符 | 3.0.2 |
isSendNotification | Boolean | 否 | 删除成功后是否发送通知消息 | 3.0.2 |
notificationExtra | String | 否 | RC:chrmKVNotiMsg 消息中携带的附加信息 | 3.0.2 |
# 代码示例
实例化
// 注: im 实例通过 RongIMLib.init 获取(单个页面仅需初始化一次) var chatRoom = im.ChatRoom.get({ id: 'chatRoom1' });
已复制
1
2
3
4
2
3
4
删除
var key = 'role'; chatRoom.forceRemoveEntry({ key: key, isSendNotification: true, notificationExtra: 'Change role' }).then(function() { console.log('删除聊天室属性成功'); });
已复制
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 获取单个属性
获取指定属性信息
# 参数说明
实例化参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
id | String | 是 | 聊天室 id | 3.0.2 |
获取参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
key | String | 是 | 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符 | 3.0.2 |
# 代码示例
实例化
// 注: im 实例通过 RongIMLib.init 获取(单个页面仅需初始化一次) var chatRoom = im.ChatRoom.get({ id: 'chatRoom1' });
已复制
1
2
3
4
2
3
4
获取
var key = 'role'; chatRoom.getEntry(key).then(function(value) { console.log('获取聊天室属性信息成功', value); });
已复制
1
2
3
4
2
3
4
# 获取所有属性
# 参数说明
实例化参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
id | String | 是 | 聊天室 id | 3.0.2 |
# 代码示例
实例化
// 注: im 实例通过 RongIMLib.init 获取(单个页面仅需初始化一次) var chatRoom = im.ChatRoom.get({ id: 'chatRoom1' });
已复制
1
2
3
4
2
3
4
删除
chatRoom.getAllEntries(key).then(function(entries) { console.log('获取所有聊天室属性信息成功', entries); });
已复制
1
2
3
2
3