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

时间:2012-09-02 10:59:36

标签: javascript node.js express socket.io

在第三版ExpressJS express.createServer()更改为 express()时,此更改使得很难在同一端口上绑定socket.io。也许有人可以找到可靠的决定。

现在,这不起作用:

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

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

2 个答案:

答案 0 :(得分:38)

它在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 :(得分:0)

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)