0

我有这样的事情:

io.sockets.on('connection', function(player) {
    var currentRoom;
    currentRoom='lobby';
    player.join(currentRoom);
    player.broadcast.to(currentRoom).emit('newPlayer');

    require('./test').test(player);

    player.on('changeroom',function(room) {
        player.leave(currentRoom);
        player.join(room);
        currentRoom = room;
    });

});

测试.js:

exports.test = function(player) {
    player.on('message',function(msg) {
            player.broadcast.to('lobby').emit('message',msg);
    });
}

我想在 test.js 中将“大厅”更改为 currentRoom 值。我怎样才能做到这一点?

4

1 回答 1

1

您可以将其作为参数传递:

exports.test = function(player, currentRoom) {
        player.on('message',function(msg) {
                player.broadcast.to(currentRoom).emit('message',msg);
        });
    }

由于 javascript闭包,它可以工作

或者你可以把它放进去exports.currentRoom

于 2013-05-17T11:17:23.020 回答