Cuando emite un evento al servidor websocket, el servidor recibe el evento una vez y envía una respuesta, pero el cliente recibe el evento varias veces: resultado esperado resultado recibido del lado del cliente:
client.emit("test", { room: props.room, }); client.on("testResponse", () => { console.log("test response app"); });lado del servidor :
socket.on("test", (data: { room: string }) => { console.log("test"); io.in(data.room).emit("testResponse", {}); });ACTUALIZACIÓN: en el lado del cliente, tengo que poner socket.on('response,()=>{...}) en el UseEffect del componente y agregar un socket.off en el retorno del useEffect
useEffect(() => { socket.on("testResponse", () => { console.log("test response app"); }); return () => { socket.off("testResponse"); }; });