Agora云录制场景下如何映射字符串username与整数类型UID
Agora 字符串username与整数UID映射解决方案
1. 服务端维护全局持久化映射表
- 首先遵循Agora平台规则,生成符合要求的整数UID:必须为1~4294967295之间的32位无符号整数(0为平台保留值禁止使用)
- 新增映射表存储结构,核心字段包含
username、int_uid、绑定时间、最近加入频道ID,可根据业务需求补充设备ID、登录态标识等字段适配多端登录场景 - 调整加入频道的业务逻辑:前端用户申请加入频道时,必须先调用服务端接口传入username获取绑定的整数UID,不存在映射关系时由服务端统一分配唯一整数UID并持久化存储,禁止前端自行生成整数UID避免重复冲突
2. 频道内实时映射补充(可选)
- 用户使用分配的整数UID加入频道成功后,可通过Agora实时消息RTM频道广播
{int_uid: xxx, username: xxx}消息,所有频道内端可实时同步映射关系 - 也可在调用
joinChannel方法时通过optionalInfo参数携带username信息,服务端通过Agora频道回调的用户加入事件获取该信息,同步更新当前频道的临时映射列表
3. 录制文件关联处理
- Agora云录制完成后的回调元数据、录制文件命名规则中都会携带对应流的整数UID,直接使用该UID查询全局映射表即可匹配到对应用户
- 批量处理同频道录制文件时,可先拉取本次频道生命周期内所有加入过的用户映射列表,批量匹配即可快速完成所有录制文件的用户归属标记
提示:如果仅需要录制指定用户的流,启动云录制时可直接传入对应要录制的整数UID列表,减少后续匹配工作量
内容的提问来源于stack exchange,提问作者Ragib
相关产品推荐
相关产品推荐

