最新的ExpressJS不再继承自http.Server。
如果我尝试收听upgrade
事件,服务器将使用404 Not Found
回答。
当前[简化]代码是:
app.on('upgrade', function(req, socket, head) { /* ... */ });
如果我尝试在Google上搜索答案,我只会找到与“3.0 - > 4.0 express upgrade ”相关的链接,而不是 HTTP 升级
根据@ jfriend00的要求,我的快速初始化[简化]代码:
app = express.createServer();
app.listen(self.port, self.ipaddress);
答案 0 :(得分:3)
由于我的评论似乎对你有用,我会把它放在答案中。
express.createServer()
已被弃用很长时间并从Express 4中删除。您将在Express 4中创建应用程序对象:
var app = express()
然后从
返回http服务器对象var server = app.listen(...)
如果您需要直接访问http服务器对象。
答案 1 :(得分:3)
使用快速应用创建HTTP服务器:
const app = express()
const server = http.createServer(app);
server.on('upgrade', function (req, socket, head) {
// ...
});
server.listen(5000);
请参阅https://github.com/expressjs/express/issues/2556#issuecomment-75310480