繁体   English   中英

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

[英]Proper way of emitting an event from a function - Node JS - Socket.io

假设我有两个文件。

server.js

test.js

server.js包含所有初始化代码(Mongoose,Express..etc)。 它还具有以下代码:

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

在我的test.js文件中,我有一些与mqtt相关的东西。 无关紧要,但是请理解,我那里没有任何变量访问权限(req,app)。 因为该文件不属于路由或其他任何内容。

它包含在server.js中,如下所示:

require('test.js');

我没有讨论MQTT的任何细节或其工作方式。 考虑一下test.js中的一个或多个函数在特定时间运行。 因此,无论何时发生这种情况,如何使用test.js文件中的socket.io发出事件?

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

如前所述,仅从test.js导出一个以io作为参数的函数:

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

您只需从server.js中传递参数:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM