This repository has been archived by the owner on Apr 27, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 926
onnegotiationneeded event fired twice in Chrome #57
Comments
iyeldinov
changed the title
onnegotiationneeded event fired twice on Chrome
onnegotiationneeded event fired twice in Chrome
Aug 10, 2018
ONN twice issue can be fixed with a re-entrancy guard: pc.onnegotiationneeded = async e => {
if (pc._negotiating == true) return;
pc._negotiating = true;
try {
return cb(e);
} finally {
pc._negotiating = false;
}
} So the updated code from tutorial will look like (ah, and it is async/await instead of promises too :) ) async function handleNegotiationNeededEvent() {
if (myPeerConnection._negotiating == true) return;
log("*** Negotiation needed");
myPeerConnection._negotiating = true;
try {
log("---> Creating offer");
const offer = await myPeerConnection.createOffer();
log("---> Creating new description object to send to remote peer");
await myPeerConnection.setLocalDescription(offer);
log("---> Sending offer to remote peer");
sendToServer({
name: myUsername,
target: targetUsername,
type: "video-offer",
sdp: myPeerConnection.localDescription
});
} catch (e) {
reportError(e)
} finally {
myPeerConnection._negotiating = false;
}
} |
Solved that error but now this one. |
yes, when two addTrack() are used , two onnegotiationneeded events will be fired. Still dont know what to do now |
I am having similar issue. Anyone able to figure this out. My scenarios:
Let me know if there is any solution for such solution. I am trying for last more than 1 week. Thanks |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
sample tested in Chrome 68 - doesn't work
without adapter:
with adapter:
but in FF works just fine.
I've figured out that Chrome fires
onnegotiationneeded
on each track added while FF fires it once. Firing twice results into sending offer twiceHow to workaround that issue, does anybody knows?
The text was updated successfully, but these errors were encountered: