@nestjs/microservices
Version:
Nest - modern, fast, powerful node.js web framework (@microservices)
43 lines (42 loc) • 1.7 kB
TypeScript
import { Buffer } from 'buffer';
import { TcpSocket } from './tcp-socket.js';
export interface JsonSocketOptions {
maxBufferSize?: number;
incompleteMessageTimeout?: number;
maxSendBufferSize?: number;
}
export declare class JsonSocket extends TcpSocket {
private contentLength;
private buffer;
private readonly stringDecoder;
private readonly delimiter;
private readonly maxBufferSize;
private readonly incompleteMessageTimeout;
private readonly maxSendBufferSize;
private incompleteMessageTimer;
private isBackpressured;
constructor(socket: any, options?: JsonSocketOptions);
protected handleSend(message: any, callback?: (err?: any) => void): void;
/**
* Suspending reads bounds a peer that keeps asking for more, but responses
* to requests already in flight still queue up behind a peer that reads
* nothing at all. This caps how much may be held for one connection, which
* mirrors "maxBufferSize" on the receiving side.
*/
private assertSendBufferWithinLimit;
protected handleData(dataRaw: Buffer | string): void;
private processBuffer;
private applyBackpressure;
private releaseBackpressure;
/**
* Arms an idle timer whenever a packet is only partially received, and
* disarms it as soon as the buffer is drained. The timer is refreshed on
* every read, so it only fires when the peer stops sending mid-packet -
* a slow but progressing transfer is never interrupted.
*/
private refreshIncompleteMessageTimer;
private clearIncompleteMessageTimer;
private handleIncompleteMessageTimeout;
private handleMessage;
private formatMessageData;
}