@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
86 lines (85 loc) • 1.99 kB
TypeScript
/**
* Socket配置选项
*/
export interface SocketOptions {
/** 是否自动连接 */
autoConnect?: boolean;
/** 是否启用重连功能 */
reconnection?: boolean;
/** 最大重连尝试次数,默认无限 */
reconnectionAttempts?: number;
/** 重连延迟时间(毫秒) */
reconnectionDelay?: number;
/** 最大重连延迟时间(毫秒) */
reconnectionDelayMax?: number;
/** 是否启用心跳检测 */
heartbeat?: boolean;
/** 心跳间隔时间(毫秒) */
heartbeatInterval?: number;
/** 请求超时时间(毫秒) */
timeout?: number;
/** 心跳超时时间(毫秒) */
heartbeatTimeout?: number;
/** 自定义协议 */
protocols?: string | string[];
/** 连接URL */
url: string;
}
/**
* Socket连接状态
*/
export declare enum SocketStatus {
CONNECTING = 0,
OPEN = 1,
CLOSING = 2,
CLOSED = 3,
RECONNECTING = 4
}
/**
* Socket消息格式
*/
export interface SocketMessage<T = any> {
/** 事件类型 */
type: string;
/** 消息数据 */
data?: T;
/** 消息ID */
id?: string;
event?: any;
}
/**
* 心跳配置选项
*/
export interface HeartbeatOptions {
/** 心跳间隔时间(毫秒) */
interval: number;
/** 心跳超时时间(毫秒) */
timeout: number;
/** 心跳探测消息 */
message?: SocketMessage;
}
/**
* 重连配置选项
*/
export interface ReconnectOptions {
/** 是否启用重连 */
enabled: boolean;
/** 最大重连尝试次数 */
attempts?: number;
/** 重连延迟时间(毫秒) */
delay: number;
/** 最大重连延迟时间(毫秒) */
delayMax?: number;
/** 是否使用指数退避算法 */
jitter?: boolean;
}
/**
* 事件处理函数类型
*/
export type EventHandler = (...args: any[]) => void;
/**
* 事件处理函数映射
*/
export interface EventHandlerMap {
[event: string]: EventHandler[];
}