UNPKG

@likg/websocket

Version:
54 lines (53 loc) 1.41 kB
export interface KWebSocketOptions { /** 是否启用调试模式,默认值:false */ debug?: boolean; /** 连接地址,格式一般为:ws[s]://SERVER_HOST[/path][?query] */ url: string; /** 最大重连次数,默认值:5 */ maxReconnectTimes?: number; /** 重连间隔,单位(毫秒),默认值:10 * 1000 */ reconnectInterval?: number; /** 心跳间隔,单位(毫秒),默认值:10 * 1000 */ heartInterval?: number; /** 心跳描述字符串,默认值:heartbeat */ heartString?: string; /** 连接成功回调/触发时机:首次连接成功和断线重新连接后,(防止断线期间对方发送消息未接收到)一般用于请求历史消息列表 */ onConnected: () => void; /** 收到服务器消息回调 */ onMessage: (message: string) => void; } export interface KWebSocketProps { send: <T>(data: T) => void; close: () => void; } export default class KWebSocket { private options; private socket; private normalCloseFlag; private reconnectTimes; private reconnectTimer; private heartbeatTimer; constructor(options: KWebSocketOptions); /** * 初始化 & 监听 */ private init; private watch; /** * 外部调用:关闭连接 */ close(): void; /** * 发送消息 * @param data */ send<T = any>(data: T): void; /** * 发送心跳 */ private sendHeartbeat; /** * 断开重连 */ private reconnect; }