UNPKG

@nestjs/microservices

Version:

Nest - modern, fast, powerful node.js web framework (@microservices)

43 lines (42 loc) • 1.7 kB
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; }