socket.io 向所有客户端发送有效,但向房间发送无效

socket.io emitting to all clients works, but emitting to room doesn't work

当我尝试 io.emit() 时,消息会发送给所有人,但是当我尝试 io.to(room).emit() 时,消息不会发送(在代码的最后 3 行)。

我手动检查了房间里的插座,房间里的插座都正确。但是消息永远不会被传送。

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

您的套接字是否连接到特定的名称空间?在我的项目中,我在客户端有以下内容:

const socket = io.connect("/play-online").

所以为了发射到我为此创建的房间,我必须这样做:

io.of("/play-online").to(room.roomName).emit("move", move);

我可以使用 socket.in(gameID).emit("new user", user); 来修复它