我将所有用户存储在一个Array中,我想通过socket.io将该数组发送给所有客户端。我有这个代码
var players = new Array();
io.on('connection',function(socket){
var player = {
id: socket.id,
serverid: 0,
x: randomInt(100,400),
y: randomInt(100,400)
};
players[socket.id] = player;
那是我存储它然后将其发送给客户的方式
io.emit('new_player',players);
但是我得到的只是一个空数组,但是发出单个玩家的作品。
整个代码
var players = new Array();
io.on('connection',function(socket){
var player = {
id: socket.id,
serverid: 0,
x: randomInt(100,400),
y: randomInt(100,400)
};
players[socket.id] = player;
io.emit('new_player',JSON.stringify(players));
socket.on('disconnect',function(){
console.log('dced');
});
});
答案 0 :(得分:0)
使用字典而不是Array
来完成您的工作:
var players = {}; // Dictionnary instead of an array
io.on('connection', function(socket){
var player = {
id: socket.id,
serverid: 0,
x: randomInt(100,400),
y: randomInt(100,400)
};
players[socket.id] = player;
io.emit('new_player', players); // Send the dictionnary
socket.on('disconnect', function(){
console.log('dced');
});
});