Node.js 如何以最佳方式构建Express V4.11+;使用Socket.IO进行项目?

Node.js 如何以最佳方式构建Express V4.11+;使用Socket.IO进行项目?,node.js,express,socket.io,socket.io-1.0,express-4,Node.js,Express,Socket.io,Socket.io 1.0,Express 4,我使用了最新版本的expressgenerator()来生成样板文件express4.11.2项目 我正试图找出设置Socket.IO 1.3.3的最佳方法,在Express framework的几个主要版本中进行了更改,http服务器被移动到了自己的bin/www文件中 我感到困惑,因为在导出到bin/www之前,我似乎需要app.js中的express服务器 我在谷歌上搜索了几个小时,结果一无所获,看来Express框架的发展太快了,以前的所有文章都过时了 任何帮助都将不胜感激 我已经包含了

我使用了最新版本的expressgenerator()来生成样板文件express4.11.2项目

我正试图找出设置Socket.IO 1.3.3的最佳方法,在Express framework的几个主要版本中进行了更改,http服务器被移动到了自己的
bin/www
文件中

我感到困惑,因为在导出到
bin/www
之前,我似乎需要
app.js
中的express服务器

我在谷歌上搜索了几个小时,结果一无所获,看来Express框架的发展太快了,以前的所有文章都过时了

任何帮助都将不胜感激

我已经包含了下面讨论的两个文件,这样您就可以看到在生成样板文件express项目之后我正在使用的内容

bin/www app.js
由于socket.io和express的受欢迎程度和快速变化的速度,它们的许多信息都已过时

这就是我最后做的,绝不是最好的

我将在与app.js相同的级别创建一个sockets.js,这样您就可以分离所有socket.io初始化逻辑

var sockets = {};

sockets.init = function (server) {
    // socket.io setup
    var io = require('socket.io').listen(server);
    io.sockets.on('connection', function (socket) {
        console.log('socket connected');
        // other logic
    });

}

module.exports = sockets;
在您的bin/www文件中,您可以像这样初始化socket.io:

#!/usr/bin/env node
var debug = require('debug')('yourProject');
var app = require('../app');
var sockets = require('../sockets')

app.set('port', process.env.PORT || 3000);

var server = app.listen(app.get('port'), function() {
    debug('Express server listening on port ' + server.address().port);
});

sockets.init(server);
var sockets = {};

sockets.init = function (server) {
    // socket.io setup
    var io = require('socket.io').listen(server);
    io.sockets.on('connection', function (socket) {
        console.log('socket connected');
        // other logic
    });

}

module.exports = sockets;
#!/usr/bin/env node
var debug = require('debug')('yourProject');
var app = require('../app');
var sockets = require('../sockets')

app.set('port', process.env.PORT || 3000);

var server = app.listen(app.get('port'), function() {
    debug('Express server listening on port ' + server.address().port);
});

sockets.init(server);