Skip to content

Commit 5a7fa13

Browse files
feat: increase the default value of pingTimeout
This value was updated from 60000 to 5000 in [1], included in `engine.io@3.2.0` (Feb 2018). The reasoning back then: Some users experienced long delays between disconnection on the server-side and on the client-side. The "disconnect" event would take a long time to fire in the browser, probably due to a timer being delayed. Hence the change. That being said, the current value (5s) now causes unexpected disconnections when a big payload is sent over a slow network, because it prevents the ping-pong packets from being exchanged between the client and the server. This can also happen when a synchronous task blocks the server for more than 5 seconds. The new value (20s) thus seems like a good balance between quick disconnection detection and tolerance to various delays. Note: pingInterval + pingTimeout is still below the threshold of React Native, which complains if a timer is set with a delay of more than 1 minute. [1]: 65b1ad1 Related: - socketio/socket.io#2770 - socketio/socket.io#2769 - socketio/socket.io#3054 - socketio/socket.io#3376
1 parent 9534355 commit 5a7fa13

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ to a single process.
222222
- `Object`: optional, options object
223223
- **Options**
224224
- `pingTimeout` (`Number`): how many ms without a pong packet to
225-
consider the connection closed (`5000`)
225+
consider the connection closed (`20000`)
226226
- `pingInterval` (`Number`): how many ms before sending a new ping
227227
packet (`25000`)
228228
- `upgradeTimeout` (`Number`): how many ms before an uncompleted transport upgrade is cancelled (`10000`)

lib/server.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class Server extends EventEmitter {
2323
this.opts = Object.assign(
2424
{
2525
wsEngine: process.env.EIO_WS_ENGINE || "ws",
26-
pingTimeout: 5000,
26+
pingTimeout: 20000,
2727
pingInterval: 25000,
2828
upgradeTimeout: 10000,
2929
maxHttpBufferSize: 1e6,

0 commit comments

Comments
 (0)