Node 18 will close proxied websocket connections after ~60 seconds
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- javascript, node.js
- 領域
- backend, networking
調査の方向性
プロキシサーバーのセットアップと app.listen が返すサーバーから始め、Node 18 の headersTimeout と requestTimeout の動作を、リンクされた workaround と比較します。60 秒を超えて継続するプロキシ経由の WebSocket 接続を再現し、HTTP 408 Request Timeout を受信しなくなったことを確認します。この issue には、開始点となるリポジトリのファイルやテストは記載されていません。
索引モデルが issue の本文から書いたものです。
説明
With Nodejs 18 another set of http timeouts have been introduced:
headersTimeoutrequestTimeout
see: https://nodejs.org/en/blog/release/v18.0.0/#http-timeouts
These timeouts cause that established websocket connections are closed after roughly 60 seconds.
if you inspect the websocket connection via Wireshark, you see that nodejs just sends:
HTTP/1.1 408 Request Timeout
Connection: close
Through the websocket connection after the timeout.
The simplest workaround to prevent this, is to set both timeouts to zero:
const app = express();
[...]
const server = app.listen(process.env.SERVER_PORT);
// disable timeouts as otherwise websocket connections are closed after ~60-90 seconds
server.headersTimeout = 0;
server.requestTimeout = 0;
Other libs actually implemented some handling for these cases: e.g. https://github.com/vercel/next.js/commit/486b36237a213ebf4c19a3bd8f296fad5b400a64
It would be nice if this could be somehow addressed as part of this lib.
- 主要言語
- JavaScript
- スター
- 14.1k
- フォーク
- 2k
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
http-party/node-http-proxy のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
http-party/node-http-proxy#1719 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
http-party/node-http-proxy#1721 · コメント 1 件 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 55/100
http-party/node-http-proxy#1715 · コメント 1 件 · リアクション 5 件 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 15/100
http-party/node-http-proxy#1711 · コメント 2 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
http-party/node-http-proxy#1710 · リアクション 5 件 ·
http-party/node-http-proxy の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
microsoft/TypeScript#65370 ·
メンテナーはふだん 1 日以内に返信
-
enhancement good first issue priority: medium
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
TMHSDigital/Free-Game-Dev-Assets#272 ·
メンテナーはふだん 1 日以内に返信
-
metrics priority: medium
難易度 1/5 1〜3時間 初心者へのやさしさ 86/100
LearningCircuit/local-deep-research#8336 ·
メンテナーはふだん 1 日以内に返信
-
ace bug yaml
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
svelte: whitespace-only edit leaves an empty todo, edits not trimmed, filter not restored on reloadオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100