diff --git a/app/src/Room.js b/app/src/Room.js index 1a6552db..ccaccc9a 100644 --- a/app/src/Room.js +++ b/app/src/Room.js @@ -247,6 +247,7 @@ module.exports = class Room { } const { maxIncomingBitrate, initialAvailableOutgoingBitrate, listenInfos } = this.webRtcTransport; + const transport = await this.router.createWebRtcTransport({ listenInfos: listenInfos, enableUdp: true, @@ -269,10 +270,25 @@ module.exports = class Room { const { peer_name } = peer; - transport.on('dtlsstatechange', (dtlsState) => { - if (dtlsState === 'closed') { - log.debug('Transport closed', { peer_name: peer_name }); + transport.on('icestatechange', (iceState) => { + if (iceState === 'disconnected' || iceState === 'closed') { + log.warn('Transport closed "icestatechange" event', { iceState: iceState }); transport.close(); + //this.router.close(); + //peer.close(); + } + }); + + transport.on('sctpstatechange', (sctpState) => { + log.debug('Transport "sctpstatechange" event', { sctpState: sctpState }); + }); + + transport.on('dtlsstatechange', (dtlsState) => { + if (dtlsState === 'failed' || dtlsState === 'closed') { + log.warn('Transport closed "dtlsstatechange" event', { dtlsState: dtlsState }); + transport.close(); + //this.router.close(); + //peer.close(); } }); @@ -281,6 +297,7 @@ module.exports = class Room { }); log.debug('Adding transport', { transportId: id }); + peer.addTransport(transport); return { diff --git a/app/src/Server.js b/app/src/Server.js index de135f71..94fbcf58 100644 --- a/app/src/Server.js +++ b/app/src/Server.js @@ -1532,7 +1532,7 @@ function startServer() { log.debug('[Disconnect] - peer name', peerName); - room.removePeer(socket.id); + await room.removePeer(socket.id); if (room.getPeers().size === 0) { // diff --git a/public/js/RoomClient.js b/public/js/RoomClient.js index 1d8d7624..2b0ed7b5 100644 --- a/public/js/RoomClient.js +++ b/public/js/RoomClient.js @@ -866,7 +866,7 @@ class RoomClient { const baseUrl = `${window.location.origin}/join`; const queryParams = { room: this.room_id, - password: this.RoomPassword, + roomPassword: this.RoomPassword, name: this.peer_name, audio: this.peer_info.peer_audio, video: this.peer_info.peer_video,