我正在努力解释我想要做的事情,如果有些事情不可理解,请告诉我。
我有一个名为www
的文件,我正在设置我的套接字
var server = http.createServer(app);
var io = require('socket.io')(server);
require('../store.js')(io);
我正在将io数据发送到另一个文件以正确使用它。捕获我正在使用的io
。
module.exports = function (io){
}
我要做的是如何在io
文件中使用module.exports之外的store.js
?我试图创建一个变量,然后使用它,但这似乎不起作用。
我是如何尝试的。
var ioData;
ioData.on('connection', function(socket) {
//Doesn't work
});
module.exports = function(io){
ioData = io;
}
答案 0 :(得分:1)
你可以这样做
<强> store.js 强>
const store = {
io: {},
setIo(io) {
store.io = io;
},
setHandlers() {
store.io.on('connection', function(socket) {
// do something with connected socket
});
}
};
module.exports = store;
<强> WWW 强>
var server = http.createServer(app);
var store = require('../store');
var io = require('socket.io')(server);
store.setIo(io);
store.setHandlers(io);
答案 1 :(得分:0)
您需要创建一个将连接事件处理程序添加到模块导出函数中,因为当您更改ioData时,它不会重新添加处理程序。
var ioData;
module.exports = function(io){
ioData = io;
ioData.on('connection', function(socket) {
//Doesn't work
});
}