@alipay-inc/mpaas-mgs-sdk-websocket
Version:
A WebSocket SDK for mPaaS MGS with connection management, reconnection, and event handling
85 lines (84 loc) • 1.96 kB
TypeScript
import { EventEmitter } from './utils/EventEmitter';
import { RPCParams } from './types';
import { WebSocketConfig, WebSocketState, WebSocketEventData, SendOptions, WebSocketStats } from './types';
/**
* WebSocket客户端类
*/
export declare class WebSocketClient extends EventEmitter<WebSocketEventData> {
private ws;
private config;
private logger;
private reconnectTimer;
private heartbeatTimer;
private connectionTimer;
private stats;
private messageQueue;
private rpcParams;
constructor(config: WebSocketConfig, rpcParams: RPCParams);
/**
* 连接WebSocket服务器
*/
connect(): Promise<void>;
/**
* 断开WebSocket连接
* @param code 关闭代码
* @param reason 关闭原因
*/
disconnect(code?: number, reason?: string): void;
/**
* 发送消息
* @param data 消息数据
* @param options 发送选项
*/
send(data: string | ArrayBuffer | Blob, options?: SendOptions): Promise<void>;
/**
* 等待连接建立
* @param timeout 超时时间
*/
private waitForConnection;
/**
* 发送队列中的消息
*/
private flushMessageQueue;
/**
* 安排重连
*/
private scheduleReconnect;
/**
* 清除重连定时器
*/
private clearReconnectTimer;
/**
* 开始心跳
*/
private startHeartbeat;
/**
* 停止心跳
*/
private stopHeartbeat;
/**
* 清除连接定时器
*/
private clearConnectionTimer;
/**
* 获取连接状态
*/
getState(): WebSocketState;
/**
* 检查是否已连接
*/
isConnected(): boolean;
/**
* 获取统计信息
*/
getStats(): WebSocketStats;
/**
* 更新配置
* @param config 新配置
*/
updateConfig(config: Partial<WebSocketConfig>): void;
/**
* 销毁客户端
*/
destroy(): void;
}