如何在ExpressJS中处理HTTP升级?

时间:2015-02-23 03:32:13

标签: node.js express

最新的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);

2 个答案:

答案 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