我想从多个文件中使用套接字实例。我在App.js文件中编写了我的套接字连接代码。看起来如下
var socketCode = require('../api/sockets/socketCode.js');
var io = require('socket.io')(server);
io.on('connection', function(socket) {
socketCode(io, socket);
}
现在我的socketCode.js
文件如下所示
module.exports = (io, socket) => {
test: function(data) {
console.log("io", io, "\n", "socket", socket)
return io;
}
}
现在我想从另一个文件中调用test
函数,让我们从user.js
说出来。
我的user.js
看起来像是:
var socketCode = require('../api/sockets/socketCode.js')();
console.log(socketCode.test);
目的是保持单独的套接字代码和控制器以及其他代码。每当我想从控制器发出一些事件/消息时。我只想在socetCode.js
内部调用函数,它应该发出套接字事件。
如何在test
socketCode.js
内的user.js
文件中呼叫io
。它应该打印/记录{{1}}对象。
我找不到任何正确的文件结构以及套接字。我正在使用快递js。
答案 0 :(得分:0)
正如您已经想出如何创建在socketCode.js
中导出命名函数的模块:
module.exports = (io, socket) => {
test: function(data) {
console.log("io", io, "\n", "socket", socket)
return io;
}
}
您只需要在其他地方导入此模块:
var io = "your io object";
var socket = "your socket object";
var socket = require('../api/sockets/socketCode.js')(io, socket);
socket.test();
快速解释:您正在导出具有属性的对象。因此,每个函数都可以被视为导入对象的成员。
答案 1 :(得分:0)
有一个使用Typescript语言的库,名为socket-controllers