uno-ws-client
Version:
websocket客户端
101 lines (100 loc) • 2.59 kB
TypeScript
export interface IRegister {
source?: string;
target?: string[];
roomExclude?: string[];
event: 'register';
data: {
name?: string;
group: string | number;
hasCbMsg?: boolean;
disconnectTime?: number;
};
}
export interface IMessageData {
event: string;
source?: string;
target?: string[];
roomExclude?: string[];
data: any;
}
export interface AnyObject {
[key: string]: any;
}
/**
* @param reconnectionDelay 重连间隔时间 ms
* @param reconnectionLimit 断开重连次数限制
* @param callback 收到消息的回调
* @param heartbeatDelay 心跳检测间隔
* @param heartbeatWait 心跳检测超时时间,超出重连
* @param closeHeartbeat 是否关闭心跳检测
* @param registerData 注册信息,初始化有的话,自动注册
* @param autoConnect 是否需要自动连接
* @param connectByClose 断开连接是否重连
*/
export interface IOptions {
reconnectionDelay?: number;
reconnectionLimit?: number;
heartbeatDelay?: number;
heartbeatWait?: number;
closeHeartbeat?: boolean;
autoConnect?: boolean;
registerData?: IRegister;
callback?: (data: IMessageData) => void;
}
declare const defaultOptions: {
autoConnect: boolean;
reconnectionDelay: number;
heartbeatDelay: number;
heartbeatWait: number;
connectByClose: boolean;
reconnectionLimit: number;
};
declare type ClassOptions = Omit<IOptions, keyof typeof defaultOptions> & typeof defaultOptions;
export declare class Ws {
options: ClassOptions;
wsUrl: string;
registerData?: IRegister;
ins?: WebSocket;
heartbeatDelay: number;
reconnectionLimit: number;
hearting?: boolean;
reconnectId: number | undefined;
hbId: number | undefined;
hbId_s: number | undefined;
loadCb?: Function;
constructor(url: string, options: IOptions);
/**
* 初始化
*/
init(): void;
/**
* 销毁当前通信
*/
destroy(): void;
/**
* 心跳逻辑
*/
initHeartbeat(): void;
/**
* 发送消息
* @param data 消息内容
*/
send(data: IMessageData): void;
/**
* 当前端通信注册
* @param data 注册内容
*/
register(data?: IRegister): void;
/**
* 更新配置后重新初始化
* @param url 服务地址
* @param opts 配置
*/
updateOptRetry(url: IOptions | string, opts?: IOptions): void;
private onOpen;
private on;
private received;
private onError;
private onClose;
}
export {};