@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
62 lines (61 loc) • 1.48 kB
TypeScript
import { ReconnectOptions } from './types';
/**
* Socket重连管理器
* 处理断线重连逻辑
*/
export declare class ReconnectManager {
private options;
private attempts;
private timer;
private isReconnecting;
private reconnectCallback;
private onAttempt;
private onSuccess;
private onFail;
private onMaxAttemptsExceeded;
/**
* 创建重连管理器实例
* @param options 重连配置
* @param reconnectCallback 重连执行函数
* @param callbacks 回调函数集合
*/
constructor(options: ReconnectOptions, reconnectCallback: () => Promise<boolean>, callbacks?: {
onAttempt?: (attempt: number) => void;
onSuccess?: () => void;
onFail?: (error: Error) => void;
onMaxAttemptsExceeded?: () => void;
});
/**
* 启动重连过程
*/
startReconnect(): void;
/**
* 停止重连过程
*/
stopReconnect(): void;
/**
* 获取当前重连尝试次数
*/
getReconnectAttempts(): number;
/**
* 获取当前是否正在重连
*/
isActive(): boolean;
/**
* 重置重连状态
*/
reset(): void;
/**
* 安排下一次重连尝试
*/
private scheduleReconnect;
/**
* 执行重连操作
*/
private executeReconnect;
/**
* 计算重连延迟时间
* 支持指数退避算法,增加随机抖动
*/
private getReconnectDelay;
}