提问者:小点点

通过webhook收听Twilio视频房间状态回调事件时,是否有任何订单?


背景:

我们在iOS、Android、网络浏览器上的应用程序中使用Twilio可编程视频。有一个Java的网络服务器,它使用网络钩子来收听所有事件。

我们最近开始实施Android应用程序。对于android客户端,我们注意到有时会在我们服务器中的参与者“添加轨道”后收到“参与者连接”事件。

这在我们的服务器逻辑上引起了一些问题。由于我们的服务器预计“参与者连接”将出现在“轨道添加”之前,否则它无法将轨道添加到参与者(因为我们的服务器管理的参与者在“参与者连接”事件之前不可用)。

我们尝试的:

  1. 我们在连接选项中提供了localVideo和localAudio轨道,用于从android连接房间,这会随机导致此问题。
  2. 我们仅在房间连接后才从android发布曲目(从连接选项中删除了localVideo和localAudio曲目,并在onConnted回调中,将它们发布在local参与者上),这似乎可以工作,但不确定它是否是正确的方法。

问题:

  • 有时参与者在“参与者连接”之前收到“轨道添加”事件是否正常?
  • 如果是,你对优雅处理这件事有什么建议?
  • 如果不是,是什么样的情况会导致这种情况?
  • 为什么这种情况只适用于Android客户端(iOS,Web客户端工作正常。)?
  • 这是解决它的正确方法之一吗,我们这样做的方式(从客户)?

附言这更像是一个概念性的问题,因此不提供任何代码。

问候。

更新:我编辑了我的问题,只强调了两个(粗体的)。这两个我们真的需要知道。得到别人的答案将有助于我们在这个问题上获得更多的清晰。


共1个答案

匿名用户

Twilio开发者布道者在这里。

我不确定webhook的顺序,但是既然你正在经历这种情况,最好按照它们进来的任何顺序来处理webhook。

在webhook请求参数的留档中,所有添加轨道的事件还包括参与者Sid参与者身份参与者状态。因此,为了处理这个问题,我会首先检查数据库中是否存在参与者状态,如果不存在,则创建它,无论这是添加轨道的事件还是参与者连接的事件。然后,如果参与者连接的网络钩子在添加轨道后到达,您可以将其删除(除非参与者状态不同)。