跳到主要内容

自定义房间属性

提示

以下示例代码中的 room 指加入房间成功后获取到的实例。

房间属性变化通知​

加入房间成功后,可以通过调用 room.registerRoomEventListener() 注册 onRoomAttributeChange 事件监听器。

当房间内成员对属性进行修改、删除,且选择发送通知时,注册的回调函数会被调用。

设置房间属性​

提示

向房间内设置数据时不区分成员,若多人设置相同的 key 会相互覆盖。

调用 setRoomAttribute 方法设置房间属性。

接口​

typescript
room.setRoomAttribute(key, value, message)

参数说明​

参数类型必填说明
keystring是属性名称。
valuestring是属性值。
message{ name: string; content: string }否是否在设置属性的时候携带消息内容,传空则不往房间中发送消息。

示例代码​

typescript
// 设置房间属性,不发送通知
const { code } = await room.setRoomAttribute(key, value)

// 设置房间属性,并发送通知
const { code } = await room.setRoomAttribute(key, value, { name: '', content: '' })

获取房间属性​

调用 getRoomAttributes 方法获取房间属性。

接口​

typescript
room.getRoomAttributes(keys)

参数说明​

参数类型必填说明
keysstring[]是要查询的属性名数组,当数组长度为空时,取所有已设置的 kv 值。

示例代码​

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)

参数说明​

参数类型必填说明
keysstring[]是要删除的属性 key。
message{ name: string; content: string }否是否在删除属性的时候携带消息内容,传空则不往房间中发送消息。

示例代码​

typescript
// 删除房间属性,不发送通知
const { code } = await room.deleteRoomAttributes(['key_1', 'key_2'])

// 删除房间属性,并发送通知
const { code } = await room.deleteRoomAttributes(['key_1', 'key_2'], { name: '', content: '' })