假设我有两个文件。
server.js
test.js
server.js有所有的初始化代码(mongoose、express等)。它还具有以下代码:
const io = require('socket.io')(server);
在test.js文件中,我有一些与mqtt相关的内容。这是无关的,但是,请理解,我没有任何变量访问在那里(req,app)。因为那个文件不是路由的一部分。
它包含在server.js中,如下所示:
require('test.js');
我没有涉及到任何有关MQTT或它如何工作的细节。假设test.js中的一个或多个函数在特定时间运行。所以,当发生这种情况时,如何使用test.js文件中的socket.io发出事件?
我的客户端仪表板已准备好接收事件。我只是很困惑如何设计系统,尤其是如何访问 io 存在于中的变量 服务器.js 文件。
io
服务器.js
如前所述,只需从test.js导出一个函数, io 作为参数:
module.exports = function test(io) { io.on("connection", socket => { socket.emit("greeting", "hello world!"); }); };
在server.js中,只需传递以下参数:
require("./test.js")(io);