Skip to content

Commit f197ac6

Browse files
committed
[fix] Lower default values of maxBufferedChunks and maxFragments
Use smaller and safer default values for the `maxBufferedChunks` and `maxFragments` options. Closes #2331 Closes #2332
1 parent 8df8265 commit f197ac6

3 files changed

Lines changed: 14 additions & 14 deletions

File tree

doc/ws.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,10 @@ This class represents a WebSocket server. It extends the `EventEmitter`.
8888
WebSocket subprotocols. See description below.
8989
- `host` {String} The hostname where to bind the server.
9090
- `maxBufferedChunks` {Number} The maximum number of buffered data chunks. The
91-
value is coerced to a 32-bit signed integer. Defaults to 1048576. Set to 0
92-
to disable the limit.
91+
value is coerced to a 32-bit signed integer. Defaults to 262144. Set to 0 to
92+
disable the limit.
9393
- `maxFragments` {Number} The maximum number of fragments in a message. The
94-
value is coerced to a 32-bit signed integer. Defaults to 131072. Set to 0 to
94+
value is coerced to a 32-bit signed integer. Defaults to 16384. Set to 0 to
9595
disable the limit.
9696
- `maxPayload` {Number} The maximum allowed message size in bytes. The value
9797
is coerced to a 32-bit signed integer. Defaults to 104857600 (100 MiB). Set
@@ -329,10 +329,10 @@ This class represents a WebSocket. It extends the `EventEmitter`.
329329
- `handshakeTimeout` {Number} Timeout in milliseconds for the handshake
330330
request. This is reset after every redirection.
331331
- `maxBufferedChunks` {Number} The maximum number of buffered data chunks. The
332-
value is coerced to a 32-bit signed integer. Defaults to 1048576. Set to 0
333-
to disable the limit.
332+
value is coerced to a 32-bit signed integer. Defaults to 262144. Set to 0 to
333+
disable the limit.
334334
- `maxFragments` {Number} The maximum number of fragments in a message. The
335-
value is coerced to a 32-bit signed integer. Defaults to 131072. Set to 0 to
335+
value is coerced to a 32-bit signed integer. Defaults to 16384. Set to 0 to
336336
disable the limit.
337337
- `maxPayload` {Number} The maximum allowed message size in bytes. The value
338338
is coerced to a 32-bit signed integer. Defaults to 104857600 (100 MiB). Set

lib/websocket-server.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ class WebSocketServer extends EventEmitter {
4343
* called
4444
* @param {Function} [options.handleProtocols] A hook to handle protocols
4545
* @param {String} [options.host] The hostname where to bind the server
46-
* @param {Number} [options.maxBufferedChunks=1048576] The maximum number of
46+
* @param {Number} [options.maxBufferedChunks=262144] The maximum number of
4747
* buffered data chunks
48-
* @param {Number} [options.maxFragments=131072] The maximum number of message
48+
* @param {Number} [options.maxFragments=16384] The maximum number of message
4949
* fragments
5050
* @param {Number} [options.maxPayload=104857600] The maximum allowed message
5151
* size
@@ -69,8 +69,8 @@ class WebSocketServer extends EventEmitter {
6969
options = {
7070
allowSynchronousEvents: true,
7171
autoPong: true,
72-
maxBufferedChunks: 1024 * 1024,
73-
maxFragments: 128 * 1024,
72+
maxBufferedChunks: 256 * 1024,
73+
maxFragments: 16 * 1024,
7474
maxPayload: 100 * 1024 * 1024,
7575
skipUTF8Validation: false,
7676
perMessageDeflate: false,

lib/websocket.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -646,9 +646,9 @@ module.exports = WebSocket;
646646
* masking key
647647
* @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the
648648
* handshake request
649-
* @param {Number} [options.maxBufferedChunks=1048576] The maximum number of
649+
* @param {Number} [options.maxBufferedChunks=262144] The maximum number of
650650
* buffered data chunks
651-
* @param {Number} [options.maxFragments=131072] The maximum number of message
651+
* @param {Number} [options.maxFragments=16384] The maximum number of message
652652
* fragments
653653
* @param {Number} [options.maxPayload=104857600] The maximum allowed message
654654
* size
@@ -670,8 +670,8 @@ function initAsClient(websocket, address, protocols, options) {
670670
autoPong: true,
671671
closeTimeout: CLOSE_TIMEOUT,
672672
protocolVersion: protocolVersions[1],
673-
maxBufferedChunks: 1024 * 1024,
674-
maxFragments: 128 * 1024,
673+
maxBufferedChunks: 256 * 1024,
674+
maxFragments: 16 * 1024,
675675
maxPayload: 100 * 1024 * 1024,
676676
skipUTF8Validation: false,
677677
perMessageDeflate: true,

0 commit comments

Comments
 (0)