Cuando intento io.emit()
, el mensaje se emite a todos, pero cuando intento io.to(room).emit()
, el mensaje no se emite (en la tercera última línea del código).
Revisé manualmente los enchufes en la habitación y todos están presentes en la habitación correctamente. Pero el mensaje nunca se transmite.
io.on('connection', (socket) => { socket.on("create game", async ( gameID, host ) => { socket.join(gameID); // some logic }) socket.on("join game", async ( gameID, user ) => { socket.join(gameID); // some logic io.to(gameID).emit("new user", user); }) });
¿Está su socket conectado a un espacio de nombres en particular? En mi proyecto tenía en el lado del cliente lo siguiente:
const socket = io.connect("/play-online").
Entonces, para emitir a la habitación que creé para eso, tuve que hacer:
io.of("/play-online").to(room.roomName).emit("move", move);
Pude arreglarlo usando socket.in(gameID).emit("new user", user);
en cambio