UNPKG

solver-sdk

Version:

SDK для интеграции с Code Solver Backend API

93 lines 4.58 kB
import { WebSocketNamespace } from '../constants/websocket-namespaces.constants.js'; import { WebSocketClient } from '../utils/websocket-client.js'; import { SessionManager } from '../utils/session-manager.js'; import { PingPongManager } from '../utils/ping-pong-manager.js'; import { ConnectionStateManager } from '../utils/connection-state-manager.js'; import { ConnectionDiagnostics, PingPongStats } from '../interfaces/websocket/stats.interfaces.js'; import { Logger } from '../utils/logger.js'; /** * Опции для сервиса диагностики */ export interface DiagnosticsServiceOptions { /** Интервал проверки здоровья соединений в миллисекундах */ healthCheckInterval?: number; /** Логгер для вывода сообщений */ logger?: Logger; /** Менеджер сессий */ sessionManager?: SessionManager; /** Менеджер ping/pong */ pingPongManager?: PingPongManager; /** Менеджер состояния подключения */ connectionStateManager?: ConnectionStateManager; } /** * Сервис для диагностики WebSocket соединений */ export declare class DiagnosticsService { /** Интервал проверки здоровья соединений в миллисекундах */ private readonly healthCheckInterval; /** Логгер для вывода сообщений */ private readonly logger; /** Менеджер сессий */ private readonly sessionManager; /** Менеджер ping/pong */ private readonly pingPongManager; /** Менеджер состояния подключения */ private readonly connectionStateManager; /** Таймер для проверки здоровья соединений */ private healthCheckTimer; /** Клиенты WebSocket по namespace */ private readonly clients; /** * Создает новый сервис диагностики * @param {DiagnosticsServiceOptions} options Опции сервиса */ constructor(options?: DiagnosticsServiceOptions); /** * Регистрирует WebSocket клиент для мониторинга * @param {WebSocketNamespace} namespace Пространство имен * @param {WebSocketClient} client WebSocket клиент */ registerClient(namespace: WebSocketNamespace, client: WebSocketClient): void; /** * Удаляет регистрацию WebSocket клиента * @param {WebSocketNamespace} namespace Пространство имен */ unregisterClient(namespace: WebSocketNamespace): void; /** * Запускает периодическую проверку здоровья соединений * @returns {boolean} true, если проверка успешно запущена */ startHealthCheck(): boolean; /** * Останавливает периодическую проверку здоровья соединений */ stopHealthCheck(): void; /** * Выполняет проверку здоровья соединений */ private performHealthCheck; /** * Выполняет диагностику соединения * @param {WebSocketNamespace} namespace Пространство имен * @returns {ConnectionDiagnostics} Диагностическая информация */ diagnoseConnection(namespace: WebSocketNamespace): ConnectionDiagnostics; /** * Выполняет диагностику всех соединений * @returns {Record<string, ConnectionDiagnostics>} Диагностическая информация по всем соединениям */ diagnoseAllConnections(): Record<string, ConnectionDiagnostics>; /** * Получает статистику ping/pong для указанного пространства имен * @param {WebSocketNamespace} namespace Пространство имен * @returns {PingPongStats | null} Статистика ping/pong */ getPingStats(namespace: WebSocketNamespace): PingPongStats | null; /** * Возвращает функцию-обработчик для pong-ответов, которая рассчитывает RTT * @returns {(data: any) => void} Функция-обработчик */ getPongHandler(): (data: any) => void; } //# sourceMappingURL=diagnostics-service.d.ts.map