如何在同一个端口上使用ExpressJS和Socket.io?

在ExpressJS的第三个版本中, express.createServer()更改为express(),这一更改使得难以在同一个端口上绑定socket.io。 也许有人可以find强有力的决定。

现在,这不起作用:

var express = require('express') , app = express.createServer() , io = require('socket.io').listen(app); 

我目前的工作stream程: https : //gist.github.com/3596852

它是在socket.io github页面上描述的( @Golo在你的评论中说过):

 var app = express() , server = require('http').createServer(app) , io = io.listen(server); server.listen(80); 

这工作,我有它运行。

可能Golo忘记的是将app.listen(80)改为server.listen(80) 。 我也一直在努力,直到我意识到我的愚蠢的错误。

 var app = require('express')() , server = require('http').createServer(app) , io = require('socket.io').listen(server) app.start = app.listen = function(){ return server.listen.apply(server, arguments) } app.start(8080)