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);
来修复它
当我尝试 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);
来修复它