feross / simple-peer

📡 Simple WebRTC video, voice, and data channels
MIT License
7.38k stars 971 forks source link

No connection when hosted, but locally ok #911

Open zheniaslius opened 1 year ago

zheniaslius commented 1 year ago

Im getting this error when trying to connect to another peer on another network. Running locally or on the same network everything is fine

Screenshot 2023-01-11 at 22 13 36

config is like this const config = { iceServers: [{ urls: "stun:stun.l.google.com:19302" }] }

and the rest ` const handlePeer = (peer) => { peer.on('stream', (currentStream) => { userVideo.current && (userVideo.current.srcObject = currentStream); console.log('on stream', currentStream); }); peer.on('error', () => leaveCall(true)); peer.on('close', () => leaveCall());

connectionRef.current = peer;

};

const answerCall = useCallback(() => { setCallPending(true);

const peer = new window.SimplePeer({ initiator: false, trickle: false, stream, config });

peer.on('signal', (data) => {
  socket.emit('answerCall', { signal: data, to: call.from });
});

peer.signal(call.signal);

handlePeer(peer);

}, [call.from, call.signal, stream, handlePeer])

const callUser = (id) => { const peer = new window.SimplePeer({ initiator: true, trickle: false, stream, config });

peer.on('signal', (data) => {
  socket.emit('callUser', { userToCall: id, signalData: data, from: me });
});

socket.on('callAccepted', (signal) => {
  setCallPending(true);
  peer.signal(signal);
});

handlePeer(peer);

};`

razvanphp commented 1 year ago

This is usually because of ice candidates, check in chrome://webrtc-internals/ the ice-matrix and observe how and which ones connect, local peers are different than remote ones.