【问题标题】:Unhandled Rejection(Error) when trying to disconnect from Twillio Room尝试与 Twilio Room 断开连接时出现未处理的拒绝(错误)
【发布时间】:2019-12-03 01:12:04
【问题描述】:

在我的 twillio 应用程序中,尝试从房间断开连接时出现随机错误。

这是我在退出时尝试执行的代码:

        this.log('Leaving room...');
        try {
            this.activeRoom ? this.activeRoom.disconnect().catch(console.log) : console.log('No active room to disconnect / check disconnect logic');
        } catch (error) {
            console.log(error)
        }

这会产生以下错误:

我并不关心错误本身,而是我无法捕捉到错误这一事实。 如您所见,try/catch 块和 .catch() 都已添加,但我仍然收到此错误。

UPDATE_1

通过 api 挖掘后,我发现并实现了这个:

this.activeRoom.on('disconnected', function(room, error) {
  if (error) {
    console.log('Unexpectedly disconnected:', error);
  }
  myRoom.localParticipant.tracks.forEach(function(track) {
    track.stop();
    track.detach();
  });
});

但是这个错误仍然出现在我身上。

UPDATE_2

在实施答案中提出的解决方案后,这就是我得到的(仍然是相同的错误):

【问题讨论】:

  • this.activeRoom.on('error',(err)=>{}) 试试这个。这可能行不通,但我认为您需要改为捕获事件。
  • 这不起作用:(

标签: javascript reactjs twilio twilio-api


【解决方案1】:

我用这个来解决这个问题

(new Promise(() => room.disconnect())).then(() => {}).catch(() => {})

【讨论】:

  • 在我的情况下,当房间连接时断开连接时会发生这种情况
【解决方案2】:

对于遇到此问题的任何人。您从 room.disconnect() 获得的堆栈跟踪具有误导性。

实际错误在您的room.localParticipant.publishTrack(track) 调用中。该函数返回一个承诺,并会在您调用 room.disconnect() 时解析(有一个例外)。

如果您没有在那里处理失败,您将收到此问题中显示的错误。因此,只需在您的所有 publishTrack 调用中添加 .catch() 语句即可。

【讨论】:

    【解决方案3】:

    这里是 Twilio 开发者宣传员。

    您似乎无法捕捉到错误,这很奇怪。我不确定我是否有答案。

    但是,您可以在尝试断开连接之前检查本地参与者是否已连接。 Participant object has a state property 可以是“已连接”、“已断开”或“失败”。

    所以,你可以:

    if (this.activeRoom && this.activeRoom.localParticipant.state === 'connected') {
      this.activeRoom.disconnect();
    }
    

    【讨论】:

    • 我试过了,没用,正如你在我更新的问题中看到的那样
    • 嗯。我将不得不去尝试重现这个,看看我能想出什么。对不起!
    • 当我从 twilio 版本 1.8.0 升级到 1.8.2 时,问题似乎完全消失了(不再出现意外断开连接)。但是我仍然不确定为什么我无法捕捉到随机断开连接错误。这让我觉得这个问题将来可能会再次出现,谢谢大家的帮助
    • 这可能是一个内部错误,带有未捕获的承诺。很高兴更新为您修复了它。如果再次发生,我建议将其报告给 Twilio 支持,因为这显然不是正确的行为。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多