diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 0227512..86a4d99 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -42,8 +42,8 @@ [ "@electron-forge/plugin-webpack", { - "port": "4005", - "loggerPort": "9005", + "port": "4000", + "loggerPort": "9000", "mainConfig": "./webpack.main.config.js", "devContentSecurityPolicy": "connect-src 'self' http://localhost:5000 ws://localhost:5000 https://api.quotable.io/random 'unsafe-eval'", "renderer": { diff --git a/packages/desktop/src/providers/StreamProvider.tsx b/packages/desktop/src/providers/StreamProvider.tsx index 41b4c44..9506dec 100644 --- a/packages/desktop/src/providers/StreamProvider.tsx +++ b/packages/desktop/src/providers/StreamProvider.tsx @@ -31,7 +31,6 @@ export function StreamProvider({ children }: { children: React.ReactChild }) { const { $ws } = useSockets(); const [peerMap, updatePeerMap] = useImmer({}); - const [incomingSignals, updateIncomingSignals] = useImmer<{ [peerUserId: string]: any }>({}); const [userLocalStream, setUserLocalStream] = useState(); @@ -92,59 +91,6 @@ export function StreamProvider({ children }: { children: React.ReactChild }) { console.log(`peer map: `, peerMap); - // on changes of the peer map ("we called someone and created local peer connection"), see if we have an incoming signal - // and set signal if we have already gotten it and remove from the signals if used - useEffect(() => { - if (Object.keys(incomingSignals).length > 0) { - console.log('going to clear queue of incoming signals'); - - Object.entries(peerMap).map(([userId, peer]) => { - if (incomingSignals[userId]) { - // ! hack: if they are alphabetically higher, then they are initiator - if (userId > user._id.toString()) { - console.log('creating a local peer as the receiver and replacing mine'); - - peer.destroy(); - - const peerForMeAndNewbie = new Peer({ - initiator: false, - trickle: false, // prevents the multiple tries on different ice servers and signal from getting called a bunch of times - }); - - peerForMeAndNewbie.signal(incomingSignals[userId]); - - updatePeerMap((draft) => { - draft[userId] = peerForMeAndNewbie; - }); - } else { - console.log('I won, just adding the signal to my local peer with that person'); - peer.signal(incomingSignals[userId]); - } - - updateIncomingSignals((draft) => { - delete draft[userId]; - }); - } - }); - } - }, [peerMap, incomingSignals, updateIncomingSignals, user, updatePeerMap]); - - useEffect(() => { - $ws.on(ServerResponseChannels.RTC_RECEIVING_SIGNAL, (res: RtcReceiveSignalResponse) => { - console.log(`getting signal from someone`, res); - - updateIncomingSignals((draft) => { - draft[res.senderUserId] = res.simplePeerSignal; - }); - }); - - return () => { - $ws.removeListener(ServerResponseChannels.RTC_RECEIVING_SIGNAL); - }; - }, [$ws, updateIncomingSignals]); - - console.log(`peer map: `, peerMap); - const handleAddPeer = useCallback( (userId: string, peerObj: Peer) => { updatePeerMap((draft) => { @@ -157,13 +103,9 @@ export function StreamProvider({ children }: { children: React.ReactChild }) { return ( {/* handles stream connections */} - - -
- {Object.values(peerMap).map((peer, index) => ( - - ))} -
+ {distinctPeerUserIds?.length > 0 && ( + + )} {children}
@@ -174,35 +116,6 @@ export default function useStreams() { return useContext(StreamProviderContext); } -function StreamPlayer({ peer }: { peer: Peer }) { - const streamRef = useRef(null); - - console.log('re-rendering the stream player since peer likely changed', peer); - - useEffect(() => { - peer.on('stream', (remotePeerStream: MediaStream) => { - console.log('stream coming in from remote peer'); - - console.log(remotePeerStream); - - const audio = new Audio(); - audio.autoplay = true; - audio.srcObject = remotePeerStream; - - // if (streamRef?.current) streamRef.current.srcObject = remotePeerStream; - }); - - () => peer.destroy(); - }, [peer]); - - return ( - <> - this is a stream component of one remote peer - {/*