sort of working but the initiator is not getting what he/she needs
This commit is contained in:
@@ -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>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user