@airswap/jsonrpc-client-websocket
Version:
JSON-RPC over WebSockets
43 lines (42 loc) • 1.39 kB
TypeScript
import { JsonRpcError, JsonRpcResponse } from './jsonrpc.model';
export declare enum WebsocketReadyStates {
CONNECTING = 0,
OPEN = 1,
CLOSING = 2,
CLOSED = 3
}
export declare type ErrorCallback = (error: JsonRpcError) => void;
export declare class JsonRpcWebsocket {
private url;
private requestTimeoutMs;
private onError?;
jsonRpcVersion: string;
private websocket;
private closeDeferredPromise;
private requestId;
private pendingRequests;
private rpcMethods;
get state(): WebsocketReadyStates;
static setWebSocketFactory(factoryFn: ((url: string) => WebSocket) | null): void;
constructor(url: string, requestTimeoutMs: number, onError?: ErrorCallback);
open(): Promise<Event>;
close(): Promise<CloseEvent | boolean>;
on(methodName: string, callback: (...args: any[]) => any): void;
off(methodName: string): void;
call(method: string, params?: any): Promise<JsonRpcResponse>;
notify(method: string, params?: any): void;
private createWebsocket;
private respondOk;
private respondError;
private respond;
private handleMessage;
private handleRequest;
private getRequestParams;
private handleResponse;
private handleError;
private createPendingRequest;
private setupRequestTimeout;
private callOnError;
private getRequestId;
private hasProperty;
}