跳到主要内容

自定义房间属性

提示

以下示例代码中的 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: '' })