Socket.IO范围问题(Node.JS)

我正在使用一个node.js项目,我正在使用Socket.IO,并且遇到了一个问题,我正在考虑一个范围界定问题。 这是我正在做的事情:

var io = require('socket.io').listen(80); session_manager = require('./includes/session_manager'); // client joins the socket server io.sockets.on('connection', function(client) { client.on('X.Session.join', function(session_id, client) { session_manager.joinSession(session_id, function(err, session) { // do whatever }); }); // BRING IN MORE LISTENERS/EMITTERS? require('someModuleIBuild'); }); 

正如你所看到的,我基本上设置了初始连接,通过一个pipe理类join一个会话(所以我知道是谁发出去哪个会话),然后我试图dynamic地引入一些自定义的东西,也将是通过套接字连接发射和侦听。

那么我如何从自定义模块的范围内引用这个当前连接呢? 我所见过的所有例子在一个文件中都具有“开”和“发”function,看起来好像很快就会失去控制。

我可能是过度思考/过分复杂(这是我的第一个node.js项目,第一个基于套接字的项目,第一个主要是JavaScript项目….等),但任何帮助,将不胜感激。

像这样创build你的模块,你可以将client传递给模块

 module.exports = function(client) { client.on("whatever", function () { }); client.on("whenever", function (data) { }); }; 

然后做这样的要求

 require('someModuleIBuild')(client);