成员属性
更新时间: 2024/09/09 10:45:38
成员属性是附加到房间特定成员上的一系列key-value
键值对,key
为属性唯一名称,value
为当前属性值。
NERoom允许开发者自定义成员属性,并在房间生命周期内对成员属性进行添加、更新、删除操作,同时还可以监听属性变更通知。
注意事项
- 在使用成员属性前,需要在控制台中创建对应属性,指定属性名称,并进行权限配置。
- 成员属性仅对当前房间内的目标成员有效,在当前房间生命周期结束后或成员中途离开房间,成员属性会统一被清理。
设置成员属性
NERoom 支持在加入房间时设置属性,或加入房间后设置和更新属性。
设置初始成员属性
在加入房间时,通过 NEJoinRoomParams.initialProperties
参数可设置当前成员的初始属性。
function joinRoom(params: NEJoinRoomParams, options: NEJoinRoomOptions): Promise<NERoomContext>
示例代码如下:
/**
* 加入房间
* @param params.role 用户加入房间的角色
* @param params.userName 用户名
* @param params.roomUuid 房间ID
* @param params.initialProperties 成员初始化属性
*/
roomService.joinRoom({
role: 'host', // 示例数据
roomUuid: '123',
userName: '小明',
initialProperties: {key: 'value'}
}).then(res => {
console.log('joinRoom success')
}).catch(err => {
console.error(err, 'joinRoom error')
})
房间内设置属性
在加入房间后,可通过 NERoomContext.updateMemberProperty
接口进行成员属性的设置和更新。
updateMemberProperty(
uuid: string,
key: string,
value: any
): Promise<NEResponseBody>
相关参数说明如下表所示。
名称 | 描述 |
---|---|
uuid | 成员 uuid |
key | 属性名称。如果属性名称不存在,则设置该属性;如果属性名称已存在,则更新该属性 |
value | 属性值 |
示例代码如下:
roomContext.updateMemberProperty("uuid", "key", "value");
查询房间属性
通过 NERoomMember.properties
可获取成员当前时刻的所有属性。key即为属性名称,value为属性值。
删除成员属性
在加入房间后,可通过 NERoomContext.deleteMemberProperty
接口进行成员属性的删除。
function deleteMemberProperty(uuid: string, key: string): Promise<NEResponseBody>
相关参数说明如下表所示。
名称 | 描述 |
---|---|
uuid | 成员uuid |
key | 待删除的属性名称 |
示例代码如下:
roomContext.deleteMemberProperty("uuid", "key");
监听成员属性变更
在进行属性操作之后,会触发属性变更通知,通过以下回调接口监听到成员属性变更事件:
NERoomListener.onMemberPropertiesChanged
: 成员属性变更回调通知NERoomListener.onMemberPropertiesDeleted
: 成员属性删除回调通知
示例代码如下:
roomContext.addRoomListener({
onMemberPropertiesChanged: (member, properties) => {
// todo
},
onMemberPropertiesDeleted: (uuid, keys) => {
// todo
}
});
API 参考
方法 | 功能描述 |
---|---|
updateMemberProperty | 更新成员属性 |
deleteMemberProperty) | 删除成员属性 |
此文档是否对你有帮助?