UNPKG

@openim/client-sdk

Version:

JavaScript/TypeScript Client SDK for OpenIM

47 lines (46 loc) 1.63 kB
import { AppPlatform } from '../types/enum'; import { GeneralWsReq } from '../types/entity'; interface HeartbeatConfig { interval: number; timeout: number; maxFailures: number; } declare class WebSocketManager { private url; private onMessage; private onClose; private onReconnecting; private onReconnectFailed; private onReconnectSuccess; private reconnectInterval; private maxReconnectAttempts; private ws?; private connectParams; private reconnectAttempts; private shouldReconnect; private isProcessingMessage; private consecutiveHeartbeatFailures; private connectTimeoutId; platformNamespace: AppPlatform; private heartbeatConfig; private heartbeatWorker; private legacyTimer; private heartbeatTimeoutId; private workerUrl; constructor(url: string, connectParams: Record<string, unknown>, onMessage: (data: Blob | string, operationID: string) => Promise<void>, onClose: () => void, onReconnecting: () => void, onReconnectFailed: () => void, onReconnectSuccess: () => void, reconnectInterval?: number, maxReconnectAttempts?: number, heartbeatConfig?: Partial<HeartbeatConfig>); private checkPlatform; private urlFormat; private startHeartbeat; private stopHeartbeat; connect: (connectionTimeoutMs?: number) => Promise<void>; private setupEventListeners; private onBinaryMessage; sendPing: () => void; sendMessage: (req: GeneralWsReq) => void; close: () => void; /** * Reset connection state for manual reconnection */ reset: () => void; } export default WebSocketManager;