socket.io 的命名数组

Named arrays with socket.io

所以我正在创建一个多人游戏,我使用 io.emit 命令定期向客户端发送包含数据数组的更新。

setInterval(function(){  
    io.emit("sendBlocks", blocksClient);      
    io.emit("sendMoreBlocks",test);  
}, 100);

blocksClient 是一个普通数组。 而 test 是一个命名数组。

blocksClient = [{ posX: 0, posY: 0, solid: false },
  { posX: 1, posY: 0, solid: false },
  { posX: 2, posY: 0, solid: false },]

test = [ block1: { posX: 1, posY: 5 }, block2: { posX: 35, posY: 42 } ]

blocksClient 变量在到达客户端时将完全正常工作。 而测试变量到达时将完全为空。

有人知道为什么以及可以做什么吗?感谢您的帮助:)

那是因为javascript里面没有"named arrays",它们其实是有属性的对象,应该是这样的:

{ block1: { posX: 1, posY: 5 }, block2: { posX: 35, posY: 42 } }