метод socket io on не выполняется - PullRequest
0 голосов
/ 19 июня 2020

Я использую react native с socket io, и я пытаюсь понять, почему socket io .on не выполняется. У кого-нибудь есть идея?

например, клиентский сокет io, console.log не вызывается,

  socket.on('streamStarted', () => console.log('success'));

, но вызывается io.connection, потому что я вижу console.log('user connected to main connection') журнал. Что я мог делать не так?

на стороне сервера

io.on('connection', socket => {
  console.log('user connected to main connection');
  socket.on('streamStarted', () => {
    console.log('user connected to stream');
    peerConnections.set(socket.id, socket);
  });
  socket.on('offerOrAnswer', data => {
    console.log(data);
    socket.emit('offerOrAnswer', data);
  });

  socket.on('disconnect', () => {
    console.log('disconnected');
    peerConnections.delete(socket.id);
  });
});

реагировать на собственный клиент

const socket = io('http://bf1f2213f095.ngrok.io');
React.useEffect(() => {
    socket.on('streamStarted', () => console.log('success'));
    socket.on('offerOrAnswer', sdp => {
      console.log('check for offer', sdp);
      // set sdp as remote description
      setOffer(sdp);
      pc.setRemoteDescription(new RTCSessionDescription(sdp));
    });
    socket.on('candidate', candidate => {
      pc.addIceCandidate(new RTCIceCandidate(candidate));
    });

    startStream();
}, []);

1 Ответ

1 голос
/ 19 июня 2020

Для того, чтобы ваш socket.on('streamStarted', () => console.log('success')); сработал - вы должны где-нибудь отправить это сообщение:

React.useEffect(() => {
    socket.emit('streamStarted', {foo: 'bar'});
}, []);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...