@likg/websocket
Version:
Websocket APIs
54 lines (53 loc) • 1.41 kB
TypeScript
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;
}