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

Javascript 如何在同一端口上使用ExpressJS和Socket.io?,javascript,node.js,express,socket.io,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); 我当前的工作流程:它在github页面上有描述(如您的评论所述): 这很有效,我让它运

在ExpressJS express的第三个版本中,createServer()更改为express(),这使得在同一端口上绑定socket.io变得困难。也许有人能找到可靠的决定

现在,这不起作用:

var express = require('express')
, app = express.createServer()
, io = require('socket.io').listen(app);
我当前的工作流程:

它在github页面上有描述(如您的评论所述):

这很有效,我让它运行


Golo可能忘记了将listen从
app.listen(80)
更改为
server.listen(80)
。我也一直在努力解决这个问题,直到我意识到我的愚蠢错误。

我也会对此感兴趣。io的自述文件已更新为与Express 3.0相匹配(请参阅),但这对我也不起作用。看看这个要点,这是一个工作体解析器示例。是的,将
app.listen
更改为
server.listen
也为我修复了它!此解决方案仍然适用于当前的Express。检查这个实时示例。这在express:4.16.3,socket.io:2.1.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)
var app = express()
  , server = require('http').createServer(app)
  , io = io.listen(server);

server.listen(80);