javascript - 如何在一台 TURN 服务器出现故障时恢复 WebRTC 调用

标签 javascript webrtc turn

我的 WebRTC 配置中有多个轮流服务器:

  iceServers: [
    {
      urls: 'turn:turn.example.com',
      username: 'username',
      credential: 'pass'
    },
    {
      urls: 'turn:turn2.example.com',
      username: 'username',
      credential: 'pass'
    }
  ]

当我启动 WebRTC 调用然后关闭 turn.example.com 时,通信卡住。 WebRTC 似乎不会自动接听新的 ICE 候选人并恢复通话。

有没有办法使用第二个 ICE 服务器恢复/重新建立通信?

最佳答案

您应该能够使用 ICE 重新启动来收集新的 TURN 候选人。要重新启动 ICE,您需要执行另一个更改 ICE 用户名片段和密码的提议/答案交换。要触发它,您只需调用:

pc.createOffer({iceRestart: true})

关于javascript - 如何在一台 TURN 服务器出现故障时恢复 WebRTC 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42666695/

相关文章:

ios - PubNub iOS WebRTC 集成

node.js - 如何配置 WebRTC 以连接到我的 TURN 服务器?

turn - coturn 找不到用户的凭据

ios - 通话计时器在被叫方接听电话后立即开始计时

javascript - WebRTC如何区分发送给对等点的视频质量

java - 用于 Java 的 STUN、TURN、ICE 库

javascript - 简单的 Bootstrap 4 轮播,下一张幻灯片的一部分靠近主轮播元素

javascript - 滚动 div 元素时防止页面滚动

javascript - iOS:禁用弹跳滚动但允许正常滚动

javascript - 如何返回嵌套的 Promise?