正如我在标题处所说,我想为每个房间定义一个不同的数组。例如:
对于 room1 ,数组将为var colors=['red','blue'],
对于 room2 ,数组将为var colors=['black','white']
。 (名称相同但内容不同)
这是我的简化服务器:
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']; }
这样的东西,因为
会有很多房间。
我怎么能做到这一点?我应该使用命名空间而不是房间吗?
答案 0 :(得分:1)
然后有一个房间名称作为键的对象,以及相应的数组。然后使用当前房间名称自动从颜色列表中获取颜色数组:
var colorList = {
'room1' : ['a','b'],
'room2' : ['y','z']
}
, colors = colorList[room]
;