fix(ext/websocket): change default idleTimeout to 30s #23985
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Nginx has a default timeout of 60 seconds. I fell down this rabbit hole trying to figure out why WebSockets kept getting closed every 60 seconds in my application. First I found #15430 and assumed ping/pong doesn't work in Deno at all. Then I found #13172 and the discussion in #13168.
It turns out, there is already an automatic ping/pong in Deno. But it only happens every 120 seconds by default.
So I set the idleTimeout to 30s in my application, and suddenly my problems went away.
It seems to me that the default should be 30s. Otherwise people will continue to have this problem. With 30s it "just works" with common setups.