提交工单
咨询集成、功能及报价等问题
开发者短时间内频繁创建、关闭房间,ZEGO 提供的 房间创建回调 和 房间关闭回调 不保证结果的时序与开发者执行的时序一致。
当开发者需要依赖 房间创建回调 和 房间关闭回调 维护本地房间列表时,回调时序与执行时序不一致,可能会导致部分业务出错。
比如,开发者对房间的操作顺序为:
经过回调服务,到达开发者服务器的顺序有可能变为:
开发者根据回调的顺序更新本地房间信息,房间 r1 会被删除,实际上用户 u1 依旧在第二次创建的房间 r1 中。
为了解决上述回调乱序导致的问题,ZEGO 推荐开发者使用以下方案维护本地房间列表。
本方案基于回调不丢失的情况解决乱序的问题。如果回调丢失,则无法解决。
参数 | 描述 |
---|---|
event | 事件名称:
|
room_id | 房间 ID。 |
room_session_id | 房间生命周期唯一标识,在该房间的整个生命周期中保持不变。 |
room_create_time | 房间创建时间,单位:毫秒。房间创建回调 存在该参数。 |
room_close_time | 房间关闭时间,单位:毫秒。房间关闭回调 存在该参数。 |
根据 room_id、room_session_id、room_create_time,维护本地房间列表。
本地房间列表的数据结构如下:
{
RoomInfo: {
RoomID: room_id,
RoomSessionId: room_session_id,
RoomCreateTime:room_create_time,
... // 其它业务需要保存的数据
},
UserList:... // 请参考《回调生成房间用户列表解决方案》
}
收到 房间创建回调 和 房间关闭回调 后,更新本地房间列表。
下文图片中的字段说明如下:
字段前缀 | 含义 |
---|---|
zego.* | ZEGO 回调中的参数。 |
local.* | 开发者本地维护的参数。 |
房间创建回调处理流程:
房间关闭回调处理流程:
联系我们
文档反馈