92 lines
3.0 KiB
TypeScript
92 lines
3.0 KiB
TypeScript
import type { DevToolsPluginClientOptions } from './devtools.types';
|
|
export interface WebSocketCloseEvent extends Event {
|
|
code?: number;
|
|
reason?: string;
|
|
message?: string;
|
|
}
|
|
export interface WebSocketErrorEvent extends Event {
|
|
message?: string;
|
|
}
|
|
export interface WebSocketMessageEvent extends Event {
|
|
data: string | ArrayBufferLike | Blob | ArrayBufferView;
|
|
}
|
|
export interface Options {
|
|
/**
|
|
* Reconnect interval in milliseconds.
|
|
* @default 1500
|
|
*/
|
|
retriesInterval?: number;
|
|
/**
|
|
* The maximum number of retries.
|
|
* @default 200
|
|
*/
|
|
maxRetries?: number;
|
|
/**
|
|
* The timeout in milliseconds for the WebSocket connecting.
|
|
*/
|
|
connectTimeout?: number;
|
|
/**
|
|
* The error handler.
|
|
* @default throwing an error
|
|
*/
|
|
onError?: (error: Error) => void;
|
|
/**
|
|
* The callback to be called when the WebSocket is reconnected.
|
|
* @default no-op
|
|
*/
|
|
onReconnect?: (reason: string) => void;
|
|
/**
|
|
* The [`binaryType`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/binaryType).
|
|
*/
|
|
binaryType?: DevToolsPluginClientOptions['websocketBinaryType'];
|
|
}
|
|
export declare class WebSocketWithReconnect implements WebSocket {
|
|
readonly url: string;
|
|
private readonly retriesInterval;
|
|
private readonly maxRetries;
|
|
private readonly connectTimeout;
|
|
private readonly onError;
|
|
private readonly onReconnect;
|
|
private ws;
|
|
private retries;
|
|
private connectTimeoutHandle;
|
|
private isClosed;
|
|
private sendQueue;
|
|
private lastCloseEvent;
|
|
private eventListeners;
|
|
private readonly wsBinaryType?;
|
|
constructor(url: string, options?: Options);
|
|
close(code?: number, reason?: string): void;
|
|
addEventListener(event: 'message', listener: (event: WebSocketMessageEvent) => void): void;
|
|
addEventListener(event: 'open', listener: () => void): void;
|
|
addEventListener(event: 'error', listener: (event: WebSocketErrorEvent) => void): void;
|
|
addEventListener(event: 'close', listener: (event: WebSocketCloseEvent) => void): void;
|
|
removeEventListener(event: string, listener: (event: any) => void): void;
|
|
private connect;
|
|
send(data: string | ArrayBufferView | Blob | ArrayBufferLike): void;
|
|
private emitEvent;
|
|
private handleOpen;
|
|
private handleMessage;
|
|
private handleError;
|
|
private handleClose;
|
|
private handleConnectTimeout;
|
|
private clearConnectTimeoutIfNeeded;
|
|
private reconnectIfNeeded;
|
|
private wsClose;
|
|
get readyState(): number;
|
|
readonly CONNECTING = 0;
|
|
readonly OPEN = 1;
|
|
readonly CLOSING = 2;
|
|
readonly CLOSED = 3;
|
|
get binaryType(): BinaryType;
|
|
get bufferedAmount(): number;
|
|
get extensions(): string;
|
|
get protocol(): string;
|
|
ping(): void;
|
|
dispatchEvent(event: Event): boolean;
|
|
set onclose(_value: ((e: WebSocketCloseEvent) => any) | null);
|
|
set onerror(_value: ((e: Event) => any) | null);
|
|
set onmessage(_value: ((e: WebSocketMessageEvent) => any) | null);
|
|
set onopen(_value: (() => any) | null);
|
|
}
|
|
//# sourceMappingURL=WebSocketWithReconnect.d.ts.map
|