From d8df47e6f893fcab997436eff1af83e3a5d991d3 Mon Sep 17 00:00:00 2001 From: SamuNatsu Date: Fri, 25 Aug 2023 17:41:06 +0800 Subject: [PATCH] Update frontend --- frontend/utils/p2p_recv.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/frontend/utils/p2p_recv.ts b/frontend/utils/p2p_recv.ts index 86957ce..51b61c8 100644 --- a/frontend/utils/p2p_recv.ts +++ b/frontend/utils/p2p_recv.ts @@ -43,6 +43,7 @@ export function startRecvService( let totSize: number = 0; let tPerNum: number = 1; let tNum: number = 0; + let retry: number = 0; cbReady(socket, peerConn); @@ -108,8 +109,17 @@ export function startRecvService( socket.emit('candidate', peerId, ev.candidate); } }); - peerConn.addEventListener('connectionstatechange', (): void => { + peerConn.addEventListener('connectionstatechange', async (): Promise => { if (peerConn.connectionState === 'failed') { + if (retry < 5) { + const offer: RTCSessionDescriptionInit = await peerConn.createOffer({ + iceRestart: true + }); + await peerConn.setLocalDescription(offer); + socket.emit('offer', peerId, offer); + retry++; + return; + } cbError(RecvServiceError.WebRTCConnectFail); socket.disconnect(); }