背景:
我们在iOS、Android、网络浏览器上的应用程序中使用Twilio可编程视频。有一个Java的网络服务器,它使用网络钩子来收听所有事件。
我们最近开始实施Android应用程序。对于android客户端,我们注意到有时会在我们服务器中的参与者“添加轨道”后收到“参与者连接”事件。
这在我们的服务器逻辑上引起了一些问题。由于我们的服务器预计“参与者连接”将出现在“轨道添加”之前,否则它无法将轨道添加到参与者(因为我们的服务器管理的参与者在“参与者连接”事件之前不可用)。
我们尝试的:
问题:
附言这更像是一个概念性的问题,因此不提供任何代码。
问候。
更新:我编辑了我的问题,只强调了两个(粗体的)。这两个我们真的需要知道。得到别人的答案将有助于我们在这个问题上获得更多的清晰。
Twilio开发者布道者在这里。
我不确定webhook的顺序,但是既然你正在经历这种情况,最好按照它们进来的任何顺序来处理webhook。
在webhook请求参数的留档中,所有添加轨道的事件还包括参与者Sid
、参与者身份
和参与者状态
。因此,为了处理这个问题,我会首先检查数据库中是否存在参与者状态
,如果不存在,则创建它,无论这是添加轨道的事件还是参与者连接的事件。然后,如果参与者连接的网络钩子在添加轨道后到达,您可以将其删除(除非参与者状态
不同)。