2017-03-08 6 views
3

ich mehrere Server wiederum in meinem WebRTC config:Wie WebRTC Anruf wieder aufzunehmen, wenn ein TURN-Server ausfällt

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

Wenn ich WebRTC Anruf starten und dann turn.example.com friert die Kommunikation bringen. WebRTC scheint nicht automatisch neue ICE-Kandidaten aufzunehmen und den Anruf fortzusetzen.

Gibt es eine Möglichkeit, die Kommunikation mit dem zweiten ICE-Server wiederaufzunehmen/wiederherzustellen?

Antwort

3

Sie sollten einen ICE-Neustart verwenden können, um neue TURN-Kandidaten zu sammeln. Um einen ICE-Neustart durchzuführen, müssen Sie einen weiteren Angebots-/Antwortaustausch durchführen, der die ICE-Benutzernamenfragmente und Kennwörter ändert. Um dies auslösen, können Sie einfach anrufen:

pc.createOffer({iceRestart: true}) 
+0

Danke, ich fand hier weitere Informationen https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Session_lifetime#ICE_restart. Scheint wie der einzige Weg, atm zu gehen. –

Verwandte Themen