成员属性

更新时间: 2023/10/18 07:48:34

成员属性是附加到房间特定成员上的一系列key-value键值对,key为属性唯一名称,value为当前属性值。 NERoom允许开发者自定义成员属性,并在房间生命周期内对成员属性进行添加、更新、删除操作,同时还可以监听属性变更通知。

注意事项

  • 在使用成员属性前,需要在控制台中创建对应属性,指定属性名称,并进行权限配置。
  • 成员属性仅对当前房间内的目标成员有效,在当前房间生命周期结束后或成员中途离开房间,成员属性会统一被清理。

设置成员属性

NERoom 支持在加入房间时设置属性,或加入房间后设置和更新属性。

设置初始成员属性

在加入房间时,通过 initialProperties 参数可设置当前成员的初始属性。

swiftfunc joinRoom(params: NEJoinRoomParams, 
            options: NEJoinRoomOptions, 
            callback: @escaping NECallback<NERoomContext>)

示例代码如下:

swift    let properties: [String: String] = ["xx": "xx"]
    let params = NEJoinRoomParams()
    params.roomUuid = "xx"
    params.userName = "xx"
    params.role = "xx"
    params.initialProperties = properties

    let options = NEJoinRoomOptions()
    NERoomKit.shared().roomService.joinRoom(params: params, options: options) { code, str, context in
        if code == 0 {
            print("加入房间成功")
        } else {
            print("加入房间失败")
        }
    }

房间内设置属性

在加入房间后,可通过 updateMemberProperty 接口进行成员属性的设置和更新。

swiftfunc updateMemberProperty(userUuid: String,
                        key: String,
                        value: String,
                        callback: NECallback<AnyObject>? = nil)

相关参数说明如下表所示。

参数 描述
uuid 成员uuid
key 属性名称,如果属性不存在,则设置该属性;如果属性已存在,则更新该属性
value 属性值
callback 回调

示例代码如下:

swift    roomContext.updateMemberProperty(userUuid: "xx", key: "key", value: "value") { code, str, _ in
        if code == 0 {
            print("更新属性成功")
        } else {
            print("更新属性失败")
        }
    }

查询成员属性

通过 properties 可获取成员当前时刻的所有属性。该字段返回一个 Map,Map 中的每个 Entry 为一个成员属性,key 为属性名称,value 为属性值。

swiftvar properties: [String: String]

删除成员属性

在加入房间后,可通过 deleteMemberProperty 接口进行成员属性的删除。

swiftfunc deleteMemberProperty(userUuid: String, 
                        key: String, 
                        callback: NECallback<AnyObject>? = nil)

相关参数说明如下表所示。

参数 描述
uuid 成员uuid
key 待删除的成员属性
callback 回调

示例代码如下:

swift    roomContext.deleteMemberProperty(userUuid: "xxx", key: "xx") { code, str, _ in
        if code == 0 {
            print("删除属性成功")
        } else {
            print("删除属性失败")
        }
    }

监听成员属性变更

在进行属性操作之后,会触发属性变更通知,通过以下回调接口监听到成员属性变更事件:

  • NERoomListener.onMemberPropertiesChanged: 成员属性变更回调通知
  • NERoomListener.onMemberPropertiesDeleted: 成员属性删除回调通知

示例代码如下:

swift// 遵循协议 NERoomListener 

func onMemberPropertiesChanged(member: NERoomMember, properties: [String: String]) {}
func onMemberPropertiesDeleted(member: NERoomMember, properties: [String: String]) {}

API 参考

方法 功能描述
updateMemberProperty 更新成员属性
deleteMemberProperty 删除成员属性
此文档是否对你有帮助?
有帮助
去反馈
  • 注意事项
  • 设置成员属性
  • 设置初始成员属性
  • 房间内设置属性
  • 查询成员属性
  • 删除成员属性
  • 监听成员属性变更
  • API 参考