Skip to content

Commit

Permalink
fix(webrtc): fix webrtc check
Browse files Browse the repository at this point in the history
  • Loading branch information
unadlib committed Jan 2, 2023
1 parent 4833075 commit b28362e
Showing 1 changed file with 38 additions and 39 deletions.
77 changes: 38 additions & 39 deletions src/transports/webRTCTransport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,50 +85,49 @@ abstract class WebRTCTransport<T = any, P = any> extends Transport<T, P> {
listener,
sender,
});

let webRTCPaused = false;
const webRTCMessageQueue: any[] = [];
const peerSend = peer.send.bind(peer);
const sendMessageQueued = () => {
webRTCPaused = false;
let message = webRTCMessageQueue.shift();
while (message) {
if (
(peer as any)._channel.bufferedAmount &&
(peer as any)._channel.bufferedAmount > BUFFER_FULL_THRESHOLD
) {
webRTCPaused = true;
webRTCMessageQueue.unshift(message);
const listener = () => {
(peer as any)._channel.removeEventListener(
if (peer) {
let webRTCPaused = false;
const webRTCMessageQueue: any[] = [];
const peerSend = peer.send.bind(peer);
const sendMessageQueued = () => {
webRTCPaused = false;
let message = webRTCMessageQueue.shift();
while (message) {
if (
(peer as any)._channel.bufferedAmount &&
(peer as any)._channel.bufferedAmount > BUFFER_FULL_THRESHOLD
) {
webRTCPaused = true;
webRTCMessageQueue.unshift(message);
const listener = () => {
(peer as any)._channel.removeEventListener(
'bufferedamountlow',
listener
);
sendMessageQueued();
};
(peer as any)._channel.addEventListener(
'bufferedamountlow',
listener
);
sendMessageQueued();
};
(peer as any)._channel.addEventListener(
'bufferedamountlow',
listener
);
return;
return;
}
try {
peerSend(message);
message = webRTCMessageQueue.shift();
} catch (error: any) {
throw new Error(`Error send message to peer: ${error.message}`);
}
}
try {
peerSend(message);
message = webRTCMessageQueue.shift();
} catch (error: any) {
throw new Error(
`Error send message to peer: ${error.message}`
);
};
peer.send = function (chunk: any) {
webRTCMessageQueue.push(chunk);
if (webRTCPaused) {
return;
}
}
};
peer.send = function (chunk: any) {
webRTCMessageQueue.push(chunk);
if (webRTCPaused) {
return;
}
sendMessageQueued();
};
sendMessageQueued();
};
}
}
}

Expand Down

0 comments on commit b28362e

Please sign in to comment.