如何在项目的其他文件上导出 Socket.io 实例

Cos*_*ack 5 export node.js socket.io emit server

我对 Web Dev 有点陌生,尤其是在 node 中,我正在为 socket.io 苦苦挣扎。问题是我需要将我的“io”导出到另一个文件中以发出消息,但它不起作用,因为我可能以错误的方式执行此操作。

我已经尝试了许多 stackOverflow 解决方案,但没有成功。

这两个文件是server.js,这里是socket的配置:

let server = http.createServer(app);
let io_fin=io_test.listen(server);
module.exports= io_test;
Run Code Online (Sandbox Code Playgroud)

在同一个文件中,我的“发出请求”正在运行:

io_fin.on('connection', function(socket){
    console.log('an user connected');

    socket.emit('chat message', 'TESTING');
  });
Run Code Online (Sandbox Code Playgroud)

在另一个文件中,我有这个导入:

let yoyo = require('socket.io');
Run Code Online (Sandbox Code Playgroud)

我试着像这样发出:

yoyo.emit('chat message', 'TEST2');

Run Code Online (Sandbox Code Playgroud)

并且 api 崩溃了,说“yoyo.emit 不是函数”。

我尝试了很多不同的方法来导出它,例如:

  • module.exports=io_test(server);

  • module.exports=io_fin;

  • module.exports=io_test.listen(server);

  • 等等..

而且我觉得我在做我错过了套接字的一个关键概念,因为我完全被卡住了!很抱歉这个“新手”问题,但我觉得我真的会使用一些帮助。提前致谢。

156*_*223 2

let yoyo = require('socket.io')这条线需要一个新的socket.io函数。

您正在导出,因此您应该从该文件server.js导入,如下所示:

// assuming the file you're importing from is in the same folder as server.js
let yoyo = require('./server');
Run Code Online (Sandbox Code Playgroud)