[英]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.