我正在尝试将Socket.io与Node.js一起使用并发送到路由逻辑中的套接字. 我有一个相当标准的Express 3设置和一个位于路由中的server.js文件,然后我有一个index.js,它位于路径文件夹中,用于导出
我有一个相当标准的Express 3设置和一个位于路由中的server.js文件,然后我有一个index.js,它位于路径文件夹中,用于导出站点的所有页面/可公开访问的功能.所以他们看起来像:
exports.index = function (req, res) { res.render('index', { title: "Awesome page" }); };
与server.js中定义的路由类似:
app.get('/',routes.index);
我假设我必须在server.js中创建socket.io对象,因为它需要服务器对象,但是如何访问该对象并从index.js导出函数向它发出?
您可以将路径文件设置为函数,并在需要该文件时传递Socket.IO对象.module.exports = function(io) { var routes = {}; routes.index = function (req, res) { io.sockets.emit('payload'); res.render('index', { title: "Awesome page" }); }; return routes; };
然后需要这样的路线:
var express = require('express'); var app = express(); var http = require('http'); var server = http.createServer(app); var io = require('socket.io').listen(server); var routes = require('./routes')(io);