【发布时间】:2021-07-20 22:21:46
【问题描述】:
我的客户没有收到发送到房间的广播。如果我用socket.emit('join', currentUser); 替换socket.to(roomName).emit('join', currentUser);,客户端会收到广播,但我想在这里使用房间。任何帮助将不胜感激。
app.js
// Game
app.get('/game', (req, res) => {
const cookies = req.cookies;
const currentUser = cookies['current_user'];
const roomName = cookies['room_name'];
if (roomName) {
res.render('pages/game', {
room: roomName
});
io.of('/game').on('connection', socket => {
console.log('a user connected');
socket.on('disconnect', () => {
console.log('user disconnected');
});
socket.join(roomName);
socket.to(roomName).emit('join', currentUser);
});
} else {
res.redirect('/login');
}
});
game.ejs
const socket = io("/game");
socket.on('join', function(user) {
console.log(`${user} joined`);
});
另外,我可以替换这个吗:
if (roomName) {
// stuff
} else {
// other stuff
}
用这个:
if (!roomName) {
// other stuff
return;
}
// stuff
【问题讨论】:
标签: javascript node.js express socket.io