sort of working but the initiator is not getting what he/she needs

This commit is contained in:
talksik
2022-05-03 10:14:34 -05:00
parent a39eec7dad
commit f4855727c1
+25 -17
View File
@@ -36,11 +36,10 @@ export default function Overlay() {
$maxNumberActiveStreams $maxNumberActiveStreams
); );
const [remoteStreams, setRemoteStreams] = useState<MediaStream[]>([]); // all of the peer connections to all people this client is connecting to
const [localPeerConnections, setLocalPeerConnections] = useState<Peer[]>([]);
const [peersRefs, setPeersRefs] = useState< const peersRefs = useRef<{ peer: Peer; socketUserId: string }[]>([]);
{ peer: Peer; socketUserId: string }[]
>([]);
const localVideoRef = useRef<HTMLVideoElement>(null); const localVideoRef = useRef<HTMLVideoElement>(null);
@@ -80,6 +79,7 @@ export default function Overlay() {
(data: GetAllSocketClients) => { (data: GetAllSocketClients) => {
console.log("all socket client connections", data); console.log("all socket client connections", data);
const peers = [];
data?.socketIds.map((userSocketId) => { data?.socketIds.map((userSocketId) => {
if (userSocketId === socket.id) return; if (userSocketId === socket.id) return;
@@ -102,11 +102,15 @@ export default function Overlay() {
} as SendSignal); } as SendSignal);
}); });
setPeersRefs((prevPeersRefs) => [ peersRefs.current.push({
...prevPeersRefs, peer: localPeerInitiator,
{ peer: localPeerInitiator, socketUserId: userSocketId }, socketUserId: userSocketId,
]); });
peers.push(localPeerInitiator);
}); });
setLocalPeerConnections(peers);
} }
); );
@@ -117,7 +121,7 @@ export default function Overlay() {
console.log("got back answerers signal"); console.log("got back answerers signal");
// from the list of peers here locally, we want to accept the answers signal // from the list of peers here locally, we want to accept the answers signal
const localPeerRefToAnswerer = peersRefs.find( const localPeerRefToAnswerer = peersRefs.current.find(
(peerRef) => peerRef.socketUserId === payload.senderUserSocketId (peerRef) => peerRef.socketUserId === payload.senderUserSocketId
); );
@@ -136,12 +140,16 @@ export default function Overlay() {
} as SendSignal); } as SendSignal);
}); });
setPeersRefs((prevPeersRefs) => [ peerToCallerPeer.signal(payload.simplePeerSignal);
...prevPeersRefs,
{ peersRefs.current.push({
peer: peerToCallerPeer, peer: peerToCallerPeer,
socketUserId: payload.senderUserSocketId, socketUserId: payload.senderUserSocketId,
}, });
setLocalPeerConnections((prevPeers) => [
...prevPeers,
peerToCallerPeer,
]); ]);
} }
}); });
@@ -177,8 +185,8 @@ export default function Overlay() {
<video muted id="userLocalVideo" ref={localVideoRef} controls autoPlay /> <video muted id="userLocalVideo" ref={localVideoRef} controls autoPlay />
{peersRefs.map((peerRef) => ( {localPeerConnections.map((peer) => (
<Video peer={peerRef.peer} /> <Video peer={peer} />
))} ))}
</div> </div>
); );