Socket.io和Express 4

我正在构build一个简单的web应用程序与node.js,express 4和socket.io(最新版本)。

我的问题是,build议的socket.io语法(从他们的网站)不符合我从expression。

这是socket.io的方式,包括一切,并开始使用:

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

问题是,我有自动生成一个项目与快递发电机和我的代码的开始看起来像这样:

 var express = require('express'), path = require('path'), favicon = require('serve-favicon'), logger = require('morgan'), cookieParser = require('cookie-parser'), bodyParser = require('body-parser'), request = require('request'); var routes = require('./routes/index'), users = require('./routes/users'); var app = express(); 

另外,这是我的“bin / www”文件:

 #!/usr/bin/env node var debug = require('debug')('ase'); var app = require('../app'); app.set('port', process.env.PORT || 3000); var server = app.listen(app.get('port'), function() { debug('Express server listening on port ' + server.address().port); }); 

我似乎没有find任何对“http”包的引用,运行socket.io似乎依赖于它。

在express 4项目中包含和使用socket.io的正确方法是什么?

作为一个侧面的问题,我应该如何构build我的代码? 也就是说,我应该包括所有我的socket.io逻辑在app.js(我想不是)或者我应该做另一个文件,并链接它?

有任何想法吗?

对于你的前两个问题,我相信这个post将帮助你在Express 4和express-generator的/ bin / www中使用socket.io

至于你的最后一个问题,你应该把相关的socket.io逻辑放在需要的地方。 它绝对不应该全部存储在一个地方。 在socket.io的聊天示例中 ,您会注意到它们将socket.io逻辑从发送消息的时间分隔到接收消息的时间。