自定义房间属性
房间数据存储
提示
- 向房间内设置数据时不区分成员,若多人设置相同的
key会相互覆盖 - 以下示例代码中的
room指加入房间成功后获取到的实例
房间属性变化通知
加入房间成功后,可以通过调用 room.registerRoomEventListener() 注册 onRoomAttributeChange 事件监听器。
当房间内成员对属性进行修改、删除,且选择发送通知时,注册的回调函数会被调用。
设置房间属性
调用 setRoomAttribute 方法设置房间属性。
接口
typescript
room.setRoomAttribute(key, value, message)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 房间属性名 |
| value | string | 是 | 房间属性值 |
| message | { name: string, content: string } | 否 | 设置属性时,是否发送通知消息。如需发送通知,则该参数必填,且 name content 不能为空。 |
示例代码
typescript
// 设置房间属性,不发送通知
const { code } = await room.setRoomAttribute(key, value)
// 设置房间属性,并发送通知
const { code } = await room.setRoomAttribute(key, value, { name: 'name', content: 'content' })
获取房间属性
调用 getRoomAttributes 方法获取房间属性。
接口
typescript
room.getRoomAttributes(keys)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| keys | string[] | 是 | 需要获取的房间属性名列表 |
示例代码
typescript
// 获取房间属性,支持同时获取多个属性
const { code, data } = await room.getRoomAttributes(['key_1', 'key_2'])
// 当获取失败时,data 值为 undefined
if (code !== RCRTCCode.SUCCESS) {
console.error('房间属性获取失败:', code)
return
}
// 获取到的值以 `key-value` 键值对的方式挂载于 data 数据中
const data_1 = data['key_1']
const data_2 = data['key_2']
删除房间属性
调用 deleteRoomAttributes 方法删除房间属性。
接口
typescript
room.deleteRoomAttributes(keys, message)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| keys | string[] | 是 | 需要删除的房间属性名列表 |
| message | { name: string, content: string } | 否 | 删除属性时,是否发送通知消息。如需发送通知,则该参数必填,且 name content 不能为空。 |
示例代码
typescript
// 删除房间属性,不发送通知
const { code } = await room.deleteRoomAttributes(['key_1', 'key_2'])
// 删除房间属性,并发送通知
const { code } = await room.deleteRoomAttributes(['key_1', 'key_2'], { name: '', content: '' })