我正在尝试将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);
