从函数 - 节点 JS - Socket.io 发出事件的正确方法



假设我有两个文件。

server.js

test.js

服务器.js所有初始化代码都已到位(猫鼬,快递(。等(。它还具有以下代码:

const io = require('socket.io')(server);

在我的测试.js文件中,我有一些与 mqtt 相关的东西。这无关紧要,但是,请理解我在那里没有任何变量访问权限(req,app(。因为该文件不是路由或任何东西的一部分。

它包含在服务器中.js作为:

require('test.js');

我没有详细介绍 MQTT 或其工作原理。考虑 test.js 中的一个或多个函数在特定时间运行。那么,当发生这种情况时,如何使用 test.js 文件中的 socket.io 发出事件?

我的客户端仪表板已准备好接收事件。我只是困惑如何设计系统,尤其是如何访问文件中存在的io变量server.js

如前所述,只需从test中导出一个函数.js它将io作为参数:

  module.exports = function test(io) {
    io.on("connection", socket => {
      socket.emit("greeting", "hello world!");
    });
 };

从您的服务器.js您只需传入参数:

 require("./test.js")(io);

最新更新