如何通过socket.io发送数组

时间:2018-10-30 22:12:37

标签: javascript node.js socket.io

我将所有用户存储在一个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');
});

});

1 个答案:

答案 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');
  });
});