@labelbox/message-bus
Version:
Distributed messaging in Typescript
36 lines (35 loc) • 1.21 kB
TypeScript
import { GenericChannel } from './GenericChannel';
import { TransportMessage } from '../Message';
export declare type ChunkedMessageStart = {
type: 'chunk_start';
chunkId: string;
size: number;
};
export declare type ChunkedMessage = {
type: 'chunk_data';
chunkId: string;
data: any;
};
export declare type ChunkedMessageEnd = {
type: 'chunk_end';
chunkId: string;
};
export declare type ChunkedTransportMessage = ChunkedMessageEnd | ChunkedMessageStart | ChunkedMessage;
export interface ChunkedChannelConstructorOptions {
chunkSize: number;
sender: (m: TransportMessage) => void;
timeout?: number;
maxStringAlloc?: number;
}
export declare class ChunkedChannel extends GenericChannel {
constructor(opts: ChunkedChannelConstructorOptions);
private _chunkSize;
private _maxStringAlloc;
protected _sender: (m: TransportMessage | ChunkedTransportMessage) => void;
private _buffer;
send(message: TransportMessage): void;
protected _messageReceived(message: TransportMessage | ChunkedTransportMessage): void;
private _receiveNewChunk;
private _receiveChunkData;
private _mergeChunks;
}