Skip to content

Commit c0534e8

Browse files
committed
feat: add options for controlling buffer usage
1 parent b3de861 commit c0534e8

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

Diff for: lib/manager.ts

+22
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,18 @@ export interface ManagerOptions extends EngineOptions {
257257
* the parser to use. Defaults to an instance of the Parser that ships with socket.io.
258258
*/
259259
parser: any;
260+
261+
/**
262+
* Should we buffer receive events if socket is not connected
263+
* @default true
264+
*/
265+
enableReceiveBuffer: boolean;
266+
267+
/**
268+
* Should we buffer send events if socket is not connected
269+
* @default true
270+
*/
271+
enableSendBuffer: boolean;
260272
}
261273

262274
export class Manager extends Emitter {
@@ -278,6 +290,14 @@ export class Manager extends Emitter {
278290
* @private
279291
*/
280292
_reconnecting: boolean;
293+
/**
294+
* @private
295+
*/
296+
_enableReceiveBuffer: boolean;
297+
/**
298+
* @private
299+
*/
300+
_enableSendBuffer: boolean;
281301

282302
private readonly uri: string;
283303
private readonly opts: object;
@@ -333,6 +353,8 @@ export class Manager extends Emitter {
333353
this.encoder = new _parser.Encoder();
334354
this.decoder = new _parser.Decoder();
335355
this._autoConnect = opts.autoConnect !== false;
356+
this._enableReceiveBuffer = opts.enableReceiveBuffer !== false;
357+
this._enableSendBuffer = opts.enableSendBuffer !== false;
336358
if (this._autoConnect) this.open();
337359
}
338360

Diff for: lib/socket.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ export class Socket extends Emitter {
162162
debug("discard packet as the transport is not currently writable");
163163
} else if (this.connected) {
164164
this.packet(packet);
165-
} else {
165+
} else if (this.io._enableSendBuffer) {
166166
this.sendBuffer.push(packet);
167167
}
168168

@@ -273,7 +273,7 @@ export class Socket extends Emitter {
273273
args.push(this.ack(packet.id));
274274
}
275275

276-
if (this.connected) {
276+
if (this.connected || this.io._enableReceiveBuffer) {
277277
this.emitEvent(args);
278278
} else {
279279
this.receiveBuffer.push(args);

0 commit comments

Comments
 (0)