UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

99 lines 3.09 kB
import { EventEmitter } from 'events'; import http from 'http'; import https from 'https'; export interface ConnectionPoolConfig { maxConnectionsPerHost: number; maxTotalConnections: number; connectionTimeout: number; keepAliveTimeout: number; maxIdleTime: number; enablePooling: boolean; enableKeepAlive: boolean; socketTimeout: number; maxRequestsPerConnection: number; } export interface ConnectionStats { activeConnections: number; idleConnections: number; totalRequests: number; reusedConnections: number; reuseRatio: number; averageConnectionDuration: number; poolUtilization: number; hostStats: Map<string, HostConnectionStats>; } export interface HostConnectionStats { host: string; activeConnections: number; idleConnections: number; totalRequests: number; reuseCount: number; averageResponseTime: number; } interface PooledConnection { id: string; host: string; port: number; protocol: 'http' | 'https'; socket: any; createdAt: number; lastUsed: number; requestCount: number; isActive: boolean; state: 'connecting' | 'connected' | 'idle' | 'closing' | 'closed'; } export declare class ConnectionPoolManager extends EventEmitter { private config; private connectionPool; private activeConnections; private pendingRequests; private stats; private cleanupTimer?; private requestIdCounter; private connectionIdCounter; private httpAgent?; private httpsAgent?; private isRunning; constructor(config?: Partial<ConnectionPoolConfig>); start(): void; stop(): void; getConnection(host: string, port: number, protocol?: 'http' | 'https'): Promise<PooledConnection>; returnConnection(connection: PooledConnection): void; getStats(): ConnectionStats; getPoolInfo(): { totalConnections: number; connectionsByHost: Map<string, number>; idleConnectionsByHost: Map<string, number>; activeConnectionsByHost: Map<string, number>; pendingRequestsByHost: Map<string, number>; oldestConnection: PooledConnection | null; newestConnection: PooledConnection | null; }; forceCleanup(): Promise<void>; updateConfig(newConfig: Partial<ConnectionPoolConfig>): void; getAgents(): { httpAgent?: http.Agent; httpsAgent?: https.Agent; }; private initializeAgents; private setupEventHandlers; private getIdleConnection; private canCreateNewConnection; private createNewConnection; private createSocket; private queueConnectionRequest; private activateConnection; private shouldReuseConnection; private processPendingRequests; private removePendingRequest; private getHostConnectionCount; private startCleanupTimer; private cleanupIdleConnections; private closeConnection; private closeAllConnections; private updateHostStats; private updateReuseRatio; private updatePoolStats; } export {}; //# sourceMappingURL=connection-pool-manager.d.ts.map