@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
130 lines (129 loc) • 2.97 kB
TypeScript
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;
}