[英]How to handle HTTP upgrade in ExpressJS?
最新的 ExpressJS 不再從 http.Server 繼承。
如果我嘗試偵聽upgrade
事件,服務器將回答404 Not Found
。
當前的[簡化]代碼是:
app.on('upgrade', function(req, socket, head) { /* ... */ });
如果我嘗試在 Google 上搜索答案,我只會找到與“3.0 -> 4.0 express upgrade ”相關的鏈接,而不是HTTP upgrade 。
根據@jfriend00 的要求,我的快速初始化[簡化] 代碼:
app = express.createServer();
app.listen(self.port, self.ipaddress);
由於我的評論似乎對你有用,我會把它放在一個答案中。
express.createServer()
已被棄用很長時間並從 Express 4 中刪除。您可以在 Express 4 中使用以下命令創建 app 對象:
var app = express()
然后從 http 服務器對象返回
var server = app.listen(...)
如果您需要直接訪問 http 服務器對象。
使用 express 應用創建 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.