Node.js Socket.io在';我一次也听不进去

Node.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

我有两个组件,它们都是分开的。我必须通过套接字将数据从组件1发送到组件2。但是我的组件2只侦听事件一次,一次之后它就不侦听事件了

组件1

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
   })