如何在一台 TURN 服务器出现故障时恢复 WebRTC 调用
How to resume WebRTC call when one TURN server goes down
我的 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 候选人并恢复通话。
有没有办法 resume/reestablish 使用第二个 ICE 服务器进行通信?
您应该能够使用 ICE 重新启动来收集新的 TURN 候选人。要重新启动 ICE,您需要执行另一个 offer/answer 交换以更改 ICE 用户名片段和密码。要触发它,您只需调用:
pc.createOffer({iceRestart: true})
我的 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 候选人并恢复通话。
有没有办法 resume/reestablish 使用第二个 ICE 服务器进行通信?
您应该能够使用 ICE 重新启动来收集新的 TURN 候选人。要重新启动 ICE,您需要执行另一个 offer/answer 交换以更改 ICE 用户名片段和密码。要触发它,您只需调用:
pc.createOffer({iceRestart: true})