【发布时间】:2020-06-19 17:12:01
【问题描述】:
我正在使用带有套接字 io 的本机反应,我试图弄清楚为什么套接字 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();
}, []);
【问题讨论】:
-
好像你没有从服务器发出 streamStarted 而是在上面听
标签: reactjs react-native socket.io