Skip to content
Advertisement

Why React js receive multiple answer from server with Socket.io?

When emit a event to the websocket server, the server receive the event once and send a response, but the client receive the event multiple time: result expected result received client side:

client.emit("test", {
  room: props.room,
});
client.on("testResponse", () => {
  console.log("test response app");
});

server side :

 socket.on("test", (data: { room: string }) => {
console.log("test");
io.in(data.room).emit("testResponse", {});
});

Advertisement

Answer

UPDATE: on the client side I got to put the socket.on(‘response,()=>{…}) in the UseEffect of the component and add a socket.off in the return of the useEffect

 useEffect(() => {
socket.on("testResponse", () => {
  console.log("test response app");
});


 return () => {
      socket.off("testResponse");
    };

});
User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement