我正在尝试将Socket.io与Express.JS结合使用(使用Express应用程序生成器) .
我发现了一些aswers如何做到这一点(Using socket.io in Express 4 and express-generator's /bin/www) .
我的问题是我无法使用routes文件夹中的套接字 . 我可以在app.js和bin / www.js文件中使用它们 . 当我调用路由index.js时,它只是长时间加载网页而不会出现任何错误 .
bin/www.js
...
/**
* Create HTTP server.
*/
var server = http.createServer(app);
var io = app.io
io.attach( server );
...
app.js
...
// Express
var app = express();
// Socket.io
var io = socket_io();
app.io = io;
var routes = require('./routes/index')(io);
...
routes/index.js
module.exports = function(io) {
var app = require('express');
var router = app.Router();
io.on('connection', function(socket) {
console.log('User connected');
});
return router;
}
1 回答
这是一个关于如何使用Socket.io和Express的简单示例,我在GitHub上提供了这个:
后端代码是这样的:
见https://github.com/rsp/node-websocket-vs-socket.io/blob/master/si.js
正如你在这里看到的,我正在创建Express应用程序:
然后我使用该应用程序创建一个http服务器:
最后我使用那个http服务器来创建Socket.io实例:
跑完后:
一切都在一起工作 .
您可以在GitHub上看到整个示例,其中后端和前端代码都可以使用 . 它目前使用Express 4.14.0和socket.io 1.4.8 .