Re-establish local media stream when connection comes back
Signed-off-by: James Ketrenos <james_eikona@ketrenos.com>
This commit is contained in:
parent
c71322af42
commit
42c58c5b44
@ -298,6 +298,7 @@ const MediaAgent = ({setPeers}) => {
|
|||||||
peers[id].dead = true;
|
peers[id].dead = true;
|
||||||
peers[id].connection = undefined;
|
peers[id].connection = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (debug) console.log(`media-agent - close`, peers);
|
if (debug) console.log(`media-agent - close`, peers);
|
||||||
setPeers(Object.assign({}, peers));
|
setPeers(Object.assign({}, peers));
|
||||||
}
|
}
|
||||||
@ -313,6 +314,7 @@ const MediaAgent = ({setPeers}) => {
|
|||||||
if (!ws) {
|
if (!ws) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
console.log(`media-control - Binding to WebSocket`);
|
||||||
const cbMessage = e => refWsMessage.current(e);
|
const cbMessage = e => refWsMessage.current(e);
|
||||||
ws.addEventListener('message', cbMessage);
|
ws.addEventListener('message', cbMessage);
|
||||||
const cbClose = e => refWsClose.current(e);
|
const cbClose = e => refWsClose.current(e);
|
||||||
@ -322,6 +324,27 @@ const MediaAgent = ({setPeers}) => {
|
|||||||
ws.removeEventListener('close', cbClose);
|
ws.removeEventListener('close', cbClose);
|
||||||
}
|
}
|
||||||
}, [ws, refWsMessage, refWsClose ]);
|
}, [ws, refWsMessage, refWsClose ]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
console.log(`media-control - WebSocket or Stream changed`);
|
||||||
|
|
||||||
|
const join = () => {
|
||||||
|
sendMessage({ type: 'join' });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ws && stream) {
|
||||||
|
console.log(`media-conterol - issuing join request`);
|
||||||
|
for (let peer in peers) {
|
||||||
|
if (peers[peer].local && peers[peer].dead) {
|
||||||
|
/* Allocate a new Object so <MediaControl> will trigger */
|
||||||
|
peers[peer] = Object.assign({}, peers[peer]);
|
||||||
|
delete peers[peer].dead;
|
||||||
|
setPeers(Object.assign({}, peers));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
join();
|
||||||
|
}
|
||||||
|
}, [ws, stream, peers, setPeers]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!name) {
|
if (!name) {
|
||||||
@ -396,10 +419,6 @@ const MediaAgent = ({setPeers}) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const join = () => {
|
|
||||||
sendMessage({ type: 'join' });
|
|
||||||
}
|
|
||||||
|
|
||||||
let abort = false;
|
let abort = false;
|
||||||
if (!stream) {
|
if (!stream) {
|
||||||
if (debug) console.log(`media-agent - WebSocket open request. Attempting to create local media.`);
|
if (debug) console.log(`media-agent - WebSocket open request. Attempting to create local media.`);
|
||||||
@ -410,7 +429,6 @@ const MediaAgent = ({setPeers}) => {
|
|||||||
console.log(`media-agent - aborting setting local media`);
|
console.log(`media-agent - aborting setting local media`);
|
||||||
} else {
|
} else {
|
||||||
setStream(media);
|
setStream(media);
|
||||||
join();
|
|
||||||
}
|
}
|
||||||
}).catch((error) => { /* user denied access to a/v */
|
}).catch((error) => { /* user denied access to a/v */
|
||||||
console.error(error);
|
console.error(error);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user