如何使用ExpressJS和Socket.io同一个端口上?(How to use ExpressJ

2019-06-27 16:36发布

在第三个版本ExpressJS express.createServer()的变化来表示()这个改变使得难以结合socket.io同一个端口上。 也许有人能找到强大的决策。

现在,这并不工作:

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

我现在的工作流程: https://gist.github.com/3596852

Answer 1:

这是在描述socket.io GitHub的页面(如@Golo您的评论指出):

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

server.listen(80);

这工作,我有它运行。

大概是什么戈洛已经忘记了是改变从听app.listen(80)server.listen(80) 直到我意识到自己的愚蠢的错误,我这个挣扎过。



Answer 2:

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)


文章来源: How to use ExpressJS and Socket.io on a same port?