UNPKG

@pisell/pisellos

Version:

一个可扩展的前端模块化SDK框架,支持插件系统

130 lines (129 loc) 2.97 kB
import { SocketOptions, SocketStatus } from "./types"; import { SocketMonitor, SocketMonitorOptions } from "./monitor"; /** * Socket主类 * 负责管理WebSocket连接、消息收发、事件处理、心跳检测和断线重连 */ export declare class Socket { private ws; private url; private options; private status; private eventHandlers; private heartbeatManager; private reconnectManager; private monitor; private messageIdCounter; /** * 创建Socket实例 * @param options Socket配置选项 */ constructor(options: SocketOptions); /** * 建立WebSocket连接 */ connect(): Promise<void>; /** * 关闭WebSocket连接 */ disconnect(): void; /** * 发送消息到服务器 * @param event 事件名称 * @param data 消息数据 * @param id 消息ID(可选,默认自动生成) */ send(type: string, data?: any, id?: string): void; /** * 发送原始消息 * @param message 消息对象 */ private sendRaw; /** * 注册事件监听器 * @param event 事件名称 * @param handler 事件处理函数 */ on(event: string, handler: (...args: any[]) => void): void; /** * 移除事件监听器 * @param event 事件名称 * @param handler 事件处理函数(可选,不提供则移除所有该事件的处理函数) */ off(event: string, handler?: (...args: any[]) => void): void; /** * 触发事件 * @param event 事件名称 * @param args 事件参数 */ private emit; /** * 获取当前连接状态 */ getStatus(): SocketStatus; /** * 获取当前状态描述 */ getStatusText(): string; /** * 检查是否已连接 */ isConnected(): boolean; /** * 设置连接状态 */ private setStatus; /** * 设置WebSocket事件监听器 */ private setupWebSocketListeners; /** * 处理接收到的消息 */ private handleMessage; /** * 处理连接关闭 */ private handleConnectionClosed; /** * 处理连接失败 */ private handleConnectionFailure; /** * 处理心跳响应 */ private handleHeartbeatResponse; /** * 初始化心跳检测 */ private initHeartbeat; /** * 初始化重连管理 */ private initReconnect; /** * 开始重连过程 */ private startReconnection; /** * 生成消息ID */ private generateMessageId; /** * 启用监控功能 * @param options 监控配置选项 */ enableMonitoring(options?: SocketMonitorOptions): SocketMonitor; /** * 禁用监控功能 */ disableMonitoring(): void; /** * 获取监控器实例 */ getMonitor(): SocketMonitor | null; /** * 释放资源 */ destroy(): void; }