UNPKG

@bitzonegaming/roleplay-engine-framework

Version:
46 lines (45 loc) 1.33 kB
import { RPEventEmitter } from '../../core/bus/event-emitter'; import { RPServerEvents } from '../core/events/events'; import { RPLogger } from '../../core/logger'; export interface SocketMessage<Data = unknown> { event: string; data: Data & { timestamp?: number; }; headers: Record<string, string>; } export interface EngineSocketConfig { url: string; protocols?: string | string[]; apiKeyId: string; apiKeySecret: string; serverId: string; } export declare class EngineSocket { private readonly config; private readonly eventEmitter; private readonly logger; private ws; private connectedAt; private readonly maxRetries; private retryCount; private readonly baseDelayMs; private manuallyClosed; private isConnecting; private isConnected; private activeTimers; private pingInterval?; constructor(config: EngineSocketConfig, eventEmitter: RPEventEmitter<RPServerEvents>, logger: RPLogger); start(): Promise<void>; close(code?: number, reason?: string): void; private clearAllTimers; private addTimer; private tryConnect; private connectOnce; private handleMessage; private send; private delay; private appendQuery; private setupPingInterval; private setupPostHandshakeReconnection; }