Node.js Socket.io在';我一次也听不进去
我有两个组件,它们都是分开的。我必须通过套接字将数据从组件1发送到组件2。但是我的组件2只侦听事件一次,一次之后它就不侦听事件了 组件1Node.js Socket.io在';我一次也听不进去,node.js,reactjs,sockets,websocket,Node.js,Reactjs,Sockets,Websocket,我有两个组件,它们都是分开的。我必须通过套接字将数据从组件1发送到组件2。但是我的组件2只侦听事件一次,一次之后它就不侦听事件了 组件1 class Component extends React.component{ socket = socketIOClient("http://localhost:5000") sendData = () =>{ socket.emit("newData", {somedata}) } re
class Component extends React.component{
socket = socketIOClient("http://localhost:5000")
sendData = () =>{
socket.emit("newData", {somedata})
}
render() {
return(
<button onClick={this.sendData} >Send</button>
})
Component1多次向服务器发送数据(通过控制台登录服务器进行验证)
但是Component2只在第一次收到数据。找到了解决方案
错误在服务器端
我们必须使用实际的io对象将事件发送到连接到服务器的其他套接字
所以服务器端应该是
const io = socketIO(server)
io.on("connection", socket =>{
socket.on("newData", data =>{
io.sockets.emit("newData", data) //changed this line
})
})
const io = socketIO(server)
io.on("connection", socket =>{
socket.on("newData", data=> socket.emit("newData"))
})
const io = socketIO(server)
io.on("connection", socket =>{
socket.on("newData", data =>{
io.sockets.emit("newData", data) //changed this line
})