UNPKG

@airswap/jsonrpc-client-websocket

Version:

JSON-RPC over WebSockets

43 lines (42 loc) 1.39 kB
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; }