【发布时间】:2016-03-27 20:41:37
【问题描述】:
这是我的连接函数,我在其中将套接字添加到 SOCKET_LIST 全局,以便以后可以对其进行迭代。
Player.onConnect 进行初始化,如果没有开放的房间将创建一个新房间,如果有人在等待对手,则加入一个。
io.sockets.on('connection', function(socket) {
SOCKET_LIST[socket.id] = socket;
Player.onConnect(socket);
});
然后这是我尝试将所有数据发送给同一个房间的用户的地方。但不是仅仅将数据发送给房间里的人,而是将数据发送给连接到服务器的每个人。
setInterval(function(){
var pack = {
player:Player.update(),
platform:Platform.update()
}
for (var i in SOCKET_LIST) {
var socket = SOCKET_LIST[i];
io.sockets.in(socket.room).emit('newPositions', pack);
}
}, 30);
当我从服务器控制台注销房间 ID 时,它会相应地工作,就像我将从 2 个客户端加入,然后第三个客户端将控制台输出一个新的房间 ID,然后是第 5 个,依此类推。游戏假设为 2 人游戏,如果其他人尝试加入游戏,则会创建一个新房间。
【问题讨论】:
标签: javascript node.js canvas socket.io