UNPKG

@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
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; }