簡體   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