1
Fork 0

Improve error handling during negotiation.

This commit is contained in:
Juliusz Chroboczek 2020-12-25 18:26:30 +01:00
parent d5c7a13aae
commit e3fd9a963a
1 changed files with 30 additions and 13 deletions

View File

@ -620,8 +620,11 @@ ServerConnection.prototype.gotOffer = async function(id, labels, offer, renegoti
if(sc.ondownstream)
sc.ondownstream.call(sc, c);
try {
await c.pc.setRemoteDescription(offer);
await c.flushRemoteIceCandidates()
await c.flushRemoteIceCandidates();
let answer = await c.pc.createAnswer();
if(!answer)
throw new Error("Didn't create answer");
@ -631,6 +634,16 @@ ServerConnection.prototype.gotOffer = async function(id, labels, offer, renegoti
id: id,
answer: answer,
});
} catch(e) {
try {
if(c.onerror)
c.onerror.call(c, e);
} finally {
c.abort();
}
return;
}
c.localDescriptionSent = true;
c.flushLocalIceCandidates();
if(c.onnegotiationcompleted)
@ -667,8 +680,12 @@ ServerConnection.prototype.gotAnswer = async function(id, answer) {
try {
await c.pc.setRemoteDescription(answer);
} catch(e) {
try {
if(c.onerror)
c.onerror.call(c, e);
} finally {
c.close();
}
return;
}
await c.flushRemoteIceCandidates();