Node.js - 在需要的模块之间共享套接字

时间:2012-08-18 08:05:37

标签: node.js loops dependencies socket.io require

我正在使用socket.io。在app.js我设置它,每当建立连接时,我将新套接字添加到sockets数组。我想在sockets之间的路由等模块之间共享require()。但是,app.js还需要路由,因此它会形成一个require循环。这是代码。

// app.js
var route = require('routes/route')
    , sockets = [];

exports.sockets = sockets;

// route.js
var sockets = require('../app').sockets;  // undefined

如何解决循环问题?还是有其他方法吗?

1 个答案:

答案 0 :(得分:1)

您可以在路由文件

中完成所有socket.IO工作
var route = require('routes/route').init(io)

with routes.js

var io;
exports.init = function(io) {
  io = io    
}