reactjs - 套接字 io on 方法未执行
问题描述
我正在使用带有套接字 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();
}, []);
解决方案
为了让您socket.on('streamStarted', () => console.log('success'));
被触发 - 您必须在某处发出此消息:
React.useEffect(() => {
socket.emit('streamStarted', {foo: 'bar'});
}, []);
推荐阅读
- ssis - SSIS - 如何阅读 csv 文件上的电子邮件列并将文件作为电子邮件附件发送
- vba - 在 VBA for Word 中查找/替换字符限制解决方法
- kubernetes - gitlab auto-deploy-app 容器的活性探测失败
- r - Sample: like Binary Tree Traversal in R
- javascript - Execute batch file in the middle of protractor test
- vue.js - 渲染错误:“TypeError:无法读取未定义的属性‘文本’”
- javascript - ES6 如何重写 toString() 方法?
- java - Duplicate and incorrect result trying to append String to Custom StringBuilder
- c# - Windows 2008 R2 操作系统中的 GDI+ 字体问题
- string - 将二维列表转换为字符串