Javascript 如何在同一端口上使用ExpressJS和Socket.io?
在ExpressJS express的第三个版本中,createServer()更改为express(),这使得在同一端口上绑定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页面上有描述(如您的评论所述): 这很有效,我让它运
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);