2012-09-02 22 views
16

在ExpressJS 的第三个版本中,express.createServer()更改为express()此更改使得难以在同一端口上绑定socket.io。也许有人可以找到强有力的决定。如何在同一个端口上使用ExpressJS和Socket.io?

现在,这不起作用:

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

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

+0

我也会对此感兴趣。 Socket.io的自述文件已更新为与Express 3.0相匹配(请参阅https://github.com/LearnBoost/socket.io#express-3x),但这对我也不起作用。 –

回答

31

这是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)。我也一直在努力,直到我意识到我的愚蠢错误。

1
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) 
+0

这很好,但我无法配置expressJS https://gist.github.com/3607715 – NiLL

+2

https://gist.github.com/3620800检查了这个要点,它与工作身体解析器的例子。 – supernova

相关问题