theater-client
Version:
TypeScript client library for Theater actor system TCP protocol
52 lines • 1.8 kB
TypeScript
/**
* Low-level TCP connection to Theater server
* Each connection is dedicated to a specific operation to avoid response multiplexing
*/
import { EventEmitter } from 'node:events';
import type { ManagementCommand, ManagementResponse } from '../types/protocol.js';
import type { TheaterClientConfig } from '../types/client.js';
/**
* A single TCP connection to the Theater server
* Implements the hygienic connection pattern - each operation gets its own connection
*/
export declare class TheaterConnection extends EventEmitter {
private readonly host;
private readonly port;
private socket;
private dataBuffer;
private messageQueue;
private messageWaiters;
private messageListenerSetup;
private _connected;
private partialMessages;
private lastCleanup;
private readonly timeout;
private readonly FRAGMENT_TIMEOUT;
private readonly CLEANUP_INTERVAL;
constructor(host: string, port: number, config?: Partial<TheaterClientConfig>);
get connected(): boolean;
private setupMessageListener;
/**
* Clean up expired partial messages
*/
private cleanupExpiredFragments;
/**
* Handle fragment reassembly
*/
private handleFragment;
connect(): Promise<void>;
private handleData;
send(command: ManagementCommand): Promise<void>;
waitForMessage(): Promise<ManagementResponse>;
receive(): Promise<ManagementResponse>;
/**
* Register a handler for incoming messages (for event streaming)
*/
onMessage(handler: (message: ManagementResponse) => void): () => void;
/**
* Register a handler for connection errors (for event streaming)
*/
onError(handler: (error: Error) => void): () => void;
close(): void;
}
//# sourceMappingURL=TheaterConnection.d.ts.map