gpt4 book ai didi

javascript - 如何在多个文件上共享套接字实例?

转载 作者:太空宇宙 更新时间:2023-11-03 22:25:24 24 4
gpt4 key购买 nike

我想使用多个文件中的套接字实例。我已在 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);

目的是保持独立的套接字代码和 Controller 以及其他代码。每当我想从 Controller 发出一些事件/消息时。我只想调用 socetCode.js 内的函数,该函数应该发出套接字事件。

我如何从user.js调用socketCode.js文件中的test。它应该打印/记录 io 对象。

我找不到任何正确的文件结构以及套接字。我正在使用express js。

最佳答案

正如您已经弄清楚如何创建在 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();

简单说明:您正在导出一个带有函数作为属性的对象。因此每个函数都可以被视为导入对象的成员。

关于javascript - 如何在多个文件上共享套接字实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47552527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com