房间属性
更新时间: 2024/08/23 16:13:54
房间属性是附加到当前房间上的一系列key-value
键值对,key
为属性唯一名称,value
为当前属性值。
NERoom 允许开发者自定义房间属性,并在房间生命周期内对属性进行添加、更新、删除操作,同时还可以监听属性变更通知。
注意事项
- 在使用房间属性前,需要在云信控制台中创建对应属性,指定属性名称,并进行权限配置。
- 房间属性仅对当前设置的房间有效,在当前房间生命周期结束后会被统一清理,下次创建房间需要重新设置。
设置房间属性
NERoom 支持在创建房间时设置属性,或加入房间后设置和更新属性。
设置初始房间属性
在创建房间时,通过 initialProperties
参数可设置房间初始属性。
func createRoom(params: NECreateRoomParams,
options: NECreateRoomOptions,
callback: NECallback<AnyObject>? = nil)
示例代码如下:
// 填充房间属性
let roomService = NERoomKit.shared().roomService
let properties: [String: String] = ["xx": "xx"]
let params = NECreateRoomParams()
params.roomUuid = "xx"
params.roomName = "xx"
params.templateId = xxx
params.initialProperties = properties
roomService.createRoom(params: params, options: NECreateRoomOptions()) { code, str, _ in
if code == 0 {
print("创建房间成功")
} else {
print("创建房间失败")
}
}
房间内设置属性
在加入房间后,可通过 updateRoomProperty
接口进行房间属性的设置和更新。
func updateRoomProperty(
key: String,
value: String,
assiciatedUserUuid: String? = nil,
callback: NECallback<AnyObject>? = nil)
相关参数说明如下表所示。
参数 | 描述 |
---|---|
key | 属性名称,如果不存在该属性,则设置该属性;如果已存在该属性,则更新该属性。 |
value | 属性值。 |
assiciatedUserUuid | 指定该属性关联的用户。若成功关联,则该房间属性在关联用户离开房间后,会自动删除。 |
callback | 回调。 |
示例代码如下:
roomContext.updateRoomProperty(key: "key", value: "value") { code, str, _ in
if code == 0 {
print("更新房间属性成功")
} else {
print("更新房间属性失败")
}
}
查询房间属性
通过 NERoomContext.roomProperties
可查询到当前时刻房间的所有属性。
该字段返回一个 Dictionary,Dictionary 中的每个 Entry 为一个房间属性,key 即为属性名称,value 为属性值。
var roomProperties: [String: String]
删除房间属性
在加入房间后,可通过 deleteRoomProperty
接口进行删除房间属性。
func deleteRoomProperty(key: String, callback: NECallback<AnyObject>? = nil)
相关参数说明如下表所示。
参数 | 描述 |
---|---|
key | 待删除的属性名称 |
callback | 回调 |
示例代码如下:
roomContext.deleteRoomProperty(key: "key") { code, str, _ in
if code == 0 {
print("删除属性成功")
} else {
print("删除属性失败")
}
}
监听房间属性变更
在进行属性操作之后,会触发属性变更通知,通过以下回调接口监听到变更事件:
NERoomListener.onRoomPropertiesChanged
: 属性变更回调通知NERoomListener.onRoomPropertiesDeleted
: 属性删除回调通知
示例代码如下:
// 遵循协议 NERoomListener
func onRoomPropertiesChanged(properties: [String: String]) {}
func onRoomPropertiesDeleted(properties: [String: String]) {}
API 参考
方法 | 功能描述 |
---|---|
updateRoomProperty | 更新房间属性 |
deleteRoomProperty | 删除房间属性 |
此文档是否对你有帮助?