【发布时间】:2013-12-12 05:46:54
【问题描述】:
我有一个这样的 socketIO/express 应用程序:
function joinRoom(socket,roomName){
socket.join(roomName);
console.log('success joining '+roomName);
socket.broadcast.to(roomName).emit('chat',{type:'join',msg:guestList[socket.id]+' has arrived in '+roomName+'!'});
socket.emit('chat',{type:'join',msg:'You are now in '+roomName});
}
function assignName(socket){
var name = 'Player#'+guestId;
guestList[socket.id]= name;
socket.emit('chat',{type:'name',msg:name});
return guestId+1;
}
io.sockets.on('connection', function (socket) {
io.of('/lobby').on('connection', function (socket) {
guestId=assignName(socket);
joinRoom(socket, 'Lobby');
});
handleMessage(socket);
});
当我打开第一个浏览器窗口时,一切正常,我看到 Player#0 已连接,并且加入了房间消息。但是,当我打开第二个窗口或浏览器时,我会看到 2 个连接(播放器#1 和 #2),然后如果我打开第三个窗口,我会看到 3 个连接,#3、#4、#5。有没有搞错?这一定是一些愚蠢的事情,但我无法弄清楚,帮助!
G.
【问题讨论】:
标签: node.js sockets express socket.io