2013-05-17 55 views
0

我有这样的事情:node.js - 共享客户端使用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; 
    }); 

}); 

test.js:

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

我想 '大房间' 更改为currentRoom值test.js.我怎样才能做到这一点?

回答

1

你可以把它作为一个参数:

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

它的工作原理是因为JavaScript Closures

或者你可以把它放在exports.currentRoom