handle peer destroyed error gracefully (#6479)

This commit is contained in:
Christopher Poile 2022-07-21 10:49:10 -04:00 committed by GitHub
parent b0f6968d5c
commit c1ce9260b7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -81,12 +81,19 @@ export async function newClient(channelID: string, iceServers: ICEServersConfigs
});
const mute = () => {
if (!peer) {
if (!peer || peer.destroyed) {
return;
}
if (voiceTrackAdded && voiceTrack) {
peer.replaceTrack(voiceTrack, null, stream);
try {
if (voiceTrackAdded && voiceTrack) {
peer.replaceTrack(voiceTrack, null, stream);
}
} catch (e) {
console.log('Error from simple-peer:', e); //eslint-disable-line no-console
return;
}
if (voiceTrack) {
voiceTrack.enabled = false;
}
@ -96,15 +103,22 @@ export async function newClient(channelID: string, iceServers: ICEServersConfigs
};
const unmute = () => {
if (!peer || !voiceTrack) {
if (!peer || !voiceTrack || peer.destroyed) {
return;
}
if (voiceTrackAdded) {
peer.replaceTrack(voiceTrack, voiceTrack, stream);
} else {
peer.addStream(stream);
voiceTrackAdded = true;
try {
if (voiceTrackAdded) {
peer.replaceTrack(voiceTrack, voiceTrack, stream);
} else {
peer.addStream(stream);
voiceTrackAdded = true;
}
} catch (e) {
console.log('Error from simple-peer:', e); //eslint-disable-line no-console
return;
}
voiceTrack.enabled = true;
if (ws) {
ws.send('unmute');