UNPKG

plug-n-play-ws

Version:

A plug-and-play WebSocket layer on top of Socket.IO with full TypeScript support, zero manual wiring, and production-ready features

50 lines (47 loc) 2.06 kB
import { E as EventMap, e as ServerConfig, S as SessionMetadata, a as SearchQuery, c as SearchResponse } from '../types-BQpUMSaB.mjs'; import 'zod'; declare class PlugNPlayServer<T extends Record<string, unknown> = EventMap> { private config; private httpServer; private io; private adapter; private logger; private emitter; private heartbeatInterval?; private cleanupInterval?; private isShuttingDown; private activeSockets; private startTime; private maxConnections; constructor(config?: ServerConfig); on<K extends keyof T>(event: K, listener: (data: T[K]) => void): this; off<K extends keyof T>(event: K, listener: (data: T[K]) => void): this; emit<K extends keyof T>(event: K, data: T[K]): boolean; once<K extends keyof T>(event: K, listener: (data: T[K]) => void): this; removeAllListeners<K extends keyof T>(event?: K): this; listen(port?: number): Promise<void>; close(): Promise<void>; sendToSession<K extends keyof T>(sessionId: string, event: K, data: T[K]): Promise<boolean>; broadcast<K extends keyof T>(event: K, data: T[K]): void; broadcastExcept<K extends keyof T>(senderSessionId: string, event: K, data: T[K]): void; getActiveSessions(): Promise<SessionMetadata[]>; getSession(sessionId: string): Promise<SessionMetadata | null>; disconnectSession(sessionId: string, reason?: string): Promise<boolean>; indexContent(id: string, content: string, metadata?: Record<string, unknown>): Promise<void>; removeContent(id: string): Promise<void>; search(query: SearchQuery, targetSessionId?: string): Promise<SearchResponse>; private setupSocketHandlers; private handleConnection; private setupSocketEventHandlers; private handleDisconnection; private disconnectSocket; private findSocketBySessionId; private startHeartbeat; private startCleanupTask; getStats(): { connectedClients: number; isShuttingDown: boolean; uptime: number; }; } export { PlugNPlayServer };