使用socket.io在不同模块之间共享客户端



我有这样的东西:

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中将'lobby'更改为currentRoom值。我该怎么做呢?

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

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

它工作由于javascript闭包

也可以放在exports.currentRoom

最新更新