Javascript node.js为每个不同的房间定义相同的阵列
正如我在标题中所说,我想为每个房间定义一个不同的数组。例如: 对于room1,数组将为Javascript node.js为每个不同的房间定义相同的阵列,javascript,arrays,node.js,socket.io,node.js-domains,Javascript,Arrays,Node.js,Socket.io,Node.js Domains,正如我在标题中所说,我想为每个房间定义一个不同的数组。例如: 对于room1,数组将为var colors=[“红色”、“蓝色”], 对于room2,数组将是var colors=[“黑色”、“白色”]。(名称相同但内容不同) 这是我的简化服务器: var io = require('socket.io').listen(3000).set('log level', 2); io.sockets.on('connection', function (socket) { var room
var colors=[“红色”、“蓝色”],
对于room2,数组将是var colors=[“黑色”、“白色”]
。(名称相同但内容不同)
这是我的简化服务器:
var io = require('socket.io').listen(3000).set('log level', 2);
io.sockets.on('connection', function (socket) {
var room = socket.handshake.query.room; // room1 -- ws://localhost:3000/?room=room1
socket.join(r); // add client to 'room1' room.
// var colors = ['yellow','green'];
io.sockets.in(r).emit('m', colors);
}
我不想要类似于if(h=='room1'){var colors=['a','b'];}elseif(room='room2'){var colors=['y','z'];}
的东西,因为
将会有很多房间
我怎样才能做到这一点?我应该使用名称空间而不是房间吗?然后使用房间名称作为键的对象以及相应的数组。然后使用当前房间名称从颜色列表中自动获取颜色数组:
var colorList = {
'room1' : ['a','b'],
'room2' : ['y','z']
}
, colors = colorList[room]
;