From d6acd0d321427b631c5554a87b75d62b9bb4b329 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Fri, 16 Dec 2022 16:32:45 +0100 Subject: [PATCH] openvidu-browser: catch unhandled error on RTCPeerConnection#addIceCandidate --- .../src/OpenViduInternal/WebRtcPeer/WebRtcPeer.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/openvidu-browser/src/OpenViduInternal/WebRtcPeer/WebRtcPeer.ts b/openvidu-browser/src/OpenViduInternal/WebRtcPeer/WebRtcPeer.ts index 3b3c1d00..622502fe 100644 --- a/openvidu-browser/src/OpenViduInternal/WebRtcPeer/WebRtcPeer.ts +++ b/openvidu-browser/src/OpenViduInternal/WebRtcPeer/WebRtcPeer.ts @@ -56,7 +56,6 @@ export class WebRtcPeer { protected configuration: Required; private iceCandidateList: RTCIceCandidate[] = []; - private candidategatheringdone = false; constructor(configuration: WebRtcPeerConfiguration) { platform = PlatformUtils.getInstance(); @@ -91,12 +90,16 @@ export class WebRtcPeer { } }); - this.pc.addEventListener('signalingstatechange', () => { + this.pc.addEventListener('signalingstatechange', async () => { if (this.pc.signalingState === 'stable') { // SDP Offer/Answer finished. Add stored remote candidates. while (this.iceCandidateList.length > 0) { let candidate = this.iceCandidateList.shift(); - this.pc.addIceCandidate(candidate); + try { + await this.pc.addIceCandidate(candidate); + } catch (error) { + logger.error('Error when calling RTCPeerConnection#addIceCandidate for RTCPeerConnection ' + this.getId(), error); + } } } });