solver-sdk
Version:
SDK для интеграции с Code Solver Backend API
93 lines • 4.58 kB
TypeScript
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