import { default as Logger } from '../log/logger'; import { XYEmitter } from '@xylink/xy-toolkit'; import { SocketOptions, XYSocketEventKey } from '../../type/index'; export declare class Socket extends XYEmitter { socket: WebSocket; private options; private heatBeatFrequency; private timeOffset; private reconnectCount; private reconnectLimit; private lockReconnect; private isConnected; private isClose; private logger; private reconnectOffset; private headBeatTimer; private pangTimer; private reconnectTimer; private taskQueue; id: string; constructor(options: SocketOptions, logger: Logger); /** * 设置参数 * * @param { any } params */ setParams(params: any): void; /** * token过期 重连 */ handleReConnect(params?: any): void; /** * 连接socket * * @param { boolean } isReconnect - 是否是重连 */ private connect; /** * 监听socket事件 */ private addEvent; /** * 移除监听socket事件 */ private removeEvent; /** * WS 连接成功 * * @param { Event } e - 连接事件 */ private onOpenSocket; /** * 处理WS消息 * * @param e * @returns */ private onHandleMessage; /** * 处理WS关闭消息 * * @param { CloseEvent } e - 关闭事件 * @returns */ private onCloseSocket; /** * 监听Error事件 * * @param { Event } e - 错误事件 * @returns */ private onErrorSocket; /** * 处理Error/Close后的重连 */ private handleReconnectCount; /** * 发送心跳事件 */ private sendHeartBeat; /** * 创建倒计时,响应是否接收到pang消息 */ private startTimerAndHandlePang; /** * 关闭socket * * @param { boolean } isReconnect - 是否是重连 */ close(isReconnect?: boolean): void; /** * 发送数据 * * @param { any } data - 发送的数据 * @param { boolean } parse - 是否需要JSON.stringify * @param { boolean } isLog - 是否需要打印日志 */ send(data: any, parse?: boolean, isLog?: boolean): void; /** * wss 重连 */ private reConnect; /** * 发送消息到消息队列 * * @param { any } data - 消息数据 */ private sendMessageToQueue; /** * 清除pang定时器 */ private clearPangTimer; /** * 清除心跳定时器 */ private clearBeatTimer; /** * 清除ws重连定时器 */ private clearReconnectTimer; /** * 重置参数 */ private reset; }