【问题标题】:node.js defining same array for each room differentnode.js为每个房间定义相同的数组不同
【发布时间】:2023-03-22 04:52:01
【问题描述】:

正如我在标题中所说,我想为每个房间定义一个不同的数组。例如:

对于 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']; } 这样的东西,因为 会有很多房间。

我怎样才能做到这一点?我应该使用命名空间而不是房间吗?

【问题讨论】:

    标签: javascript arrays node.js socket.io node.js-domains


    【解决方案1】:

    然后有一个以房间名称为键的对象,以及相应的数组。然后使用当前房间名称自动从颜色列表中获取颜色数组:

    var colorList = {
          'room1' : ['a','b'],
          'room2' : ['y','z']
        }
      , colors = colorList[room]
      ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多