node.js - 在其他JS文件中使用socket.io模块

标签 node.js express socket.io

以下是我为socket.io功能配置的app.js,一切都按预期工作,但现在我想使用此套接字功能来自同一项目的另一个js文件,如何实现这一点?

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

server.listen(8080);

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

io.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

最佳答案

只需在要使用 socket.io 模块的每个文件中写入 var io = require('socket.io')(server); 即可。如果您想创建共享功能,请使用 socket.io 在您的应用中创建另一个模块,即:

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

module.exports = function(options) {
  // your code here
}

如果这不是您问题的答案,请更具体。

关于node.js - 在其他JS文件中使用socket.io模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30760860/

相关文章:

node.js - NodeJS module.exports 没有按预期工作

node.js - 静态 Web 应用程序的服务器

node.js - 如何检查 socket.io 是否与浏览器兼容?

javascript - 添加 key : value to JSON Data in nodejs module function under race conditions

javascript - ng-grid 和实时数据内存泄漏

javascript - Node.Js 函数在 Promise 返回时调用一次时会运行两次

javascript - 如何使用 Node 电子邮件模板作为初始化/操作样式对象?

javascript - 通过 http 在两个 node.js 服务器之间传输文件

javascript - req.body 没有出现在 postman 中

node.js - 请求超时问题 - Node/Heroku