所以我想用socket io发送给所有用户的数组。
我试图创建一个随机数组,然后将该数组复制到所有其他客户端。这是代码:
服务器端:
var worldMapVar = {};
socket.on('worldMapData', function (data9) {
io.sockets.emit('worldMapDataUpdated',{
worldMapVar: data9
});
});
客户端:
//The array I want to send. The r's are all random numbers.
var worldMap = [
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 0, 0, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 0, 0, 0, 0, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, 0, 0, 0, 0, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, 0, 0, 0, 0, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, 0, 0, 0, 0, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, 0, 0, 0, 0, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 1],
[1, 0, 0, 0, 0, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, r, 0, 0, 0, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
];
//emitting the array
for (var i = 0; i < worldMap.length; i++) {
for (var j = 0; j < worldMap[0].length; j++) {
socket.emit('worldMapData', { worldMapVar: worldMap[i][j] });
}
}
//setting the array equal to the original array on all other clients
socket.on('worldMapDataUpdated', function (data9) {
var worldMapVar = [];
worldMapVar.push(data9);
for (var i = 0; i < worldMap.length; i++) {
for (var j = 0; j < worldMap[0].length; j++) {
if (worldMap[i][j] === r) {
worldMap[i][j] = worldMapVar;
}
}
}
// console.log(worldMap);
});
谢谢!
答案 0 :(得分:0)
你可以在一个发射中发送你的数组(你不必循环遍历它):
socket.emit('worldMapData', { worldMapVar: worldMap});
这将立即发送整个阵列。