From f8975a8ecbdb31e846ff1a583b9cdb0bd8a71fcc Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Sun, 26 May 2024 00:16:05 -0500 Subject: [PATCH] fix(ext/websocket): change default idleTimeout to 30s (#23985) Change the default server websocket `idleTimeout` to 30s to work with common Nginx setups which have a default timeout of 60 seconds --- cli/tsc/dts/lib.deno.ns.d.ts | 2 +- ext/http/02_websocket.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cli/tsc/dts/lib.deno.ns.d.ts b/cli/tsc/dts/lib.deno.ns.d.ts index 21b47a466c..76b59761c4 100644 --- a/cli/tsc/dts/lib.deno.ns.d.ts +++ b/cli/tsc/dts/lib.deno.ns.d.ts @@ -5730,7 +5730,7 @@ declare namespace Deno { * `pong` within the timeout specified, the connection is deemed * unhealthy and is closed. The `close` and `error` event will be emitted. * - * The unit is seconds, with a default of 120. + * The unit is seconds, with a default of 30. * Set to `0` to disable timeouts. */ idleTimeout?: number; } diff --git a/ext/http/02_websocket.ts b/ext/http/02_websocket.ts index 21f403bff0..96af4d4822 100644 --- a/ext/http/02_websocket.ts +++ b/ext/http/02_websocket.ts @@ -91,7 +91,8 @@ function upgradeWebSocket(request, options = { __proto__: null }) { const socket = createWebSocketBranded(WebSocket); setEventTargetData(socket); socket[_server] = true; - socket[_idleTimeoutDuration] = options.idleTimeout ?? 120; + // Nginx timeout is 60s, so default to a lower number: https://github.com/denoland/deno/pull/23985 + socket[_idleTimeoutDuration] = options.idleTimeout ?? 30; socket[_idleTimeoutTimeout] = null; if (inner._wantsUpgrade) {