2024/06/27 17:32:12
灵动课堂房间属性最佳实践
灵动课堂提供新增或更新指定课堂的自定义属性的能力。
你可以结合自身的业务需求,设置任意课堂自定义属性,灵动课堂会将这个属性的变更同步到所有端,以此来实现用户自己的扩展业务。
同步少量数据到房间
同步的数据少的时候可以直接借助灵动课堂的前端 SDK 更新房间属性接口,更新数据到房间中。
-
调用
updateFlexProperties
方法更新房间自定义属性。方法原型:
JavaScriptupdateFlexProperties(properties: any, cause: any): Promise<void>
示例代码:
JavaScriptthis.classroomStore.roomStore.updateFlexProperties({ "xxx": xxxxxx }, null);
-
通过监听房间属性来更新数据:
this.classroomStore.roomStore.flexProps()
。示例代码如下:JavaScriptreaction(
() => this.classroomStore.roomStore.flexProps,
() => {
this.xxxxx = this.classroomStore.roomStore.flexProps['xxxxxxxxx'];
}),
同步大量或者频繁同步数据到房间中
如果要大规模或者重复多次同步数据,直接同步每个人的数据到各端就不适合了,你可以参考如下步骤:
-
在你的服务端排完序数据进行汇总。
-
调用声网后端的更新房间属性 RESTful 接口,将数据同步到房间中。RESTful 接口详情如下:
- 方法:PUT
- 接入点:
/{region}/edu/apps/{appId}/v2/rooms/{roomUuid}/properties
-
SDK 侧通过监听房间属性进行数据更新。
调用
this.classroomStore.roomStore.flexProps()
监听房间属性更新事件。示例代码如下:JavaScriptreaction(
() => this.classroomStore.roomStore.flexProps,
() => {
this.xxxxx = this.classroomStore.roomStore.flexProps['xxxxxxxxx'];
}),