@akala/json-rpc-ws
Version:
json-rpc websocket transport
39 lines (38 loc) • 1.89 kB
TypeScript
import { default as ClientBase } from './shared-client.js';
import { SocketAdapter, SocketAdapterAkalaEventMap } from '../shared-connection.js';
import { Connection } from '../browser.js';
import { EventEmitter, AllEventKeys, AllEvents, EventListener, EventOptions, Subscription } from '@akala/core';
/**
* json-rpc-ws connection
*
* @constructor
* @param {Socket} socket - web socket for this connection
* @param {Object} parent - parent that controls this connection
*/
export declare class WebSocketAdapter extends EventEmitter<SocketAdapterAkalaEventMap> implements SocketAdapter {
private readonly socket;
constructor(socket: WebSocket);
pipe(socket: SocketAdapter): void;
get open(): boolean;
close(): void;
send(data: string): void;
private readonly messageListeners;
off<const TEvent extends AllEventKeys<SocketAdapterAkalaEventMap>>(event: TEvent, handler: EventListener<AllEvents<SocketAdapterAkalaEventMap>[TEvent]>): boolean;
on<const TEvent extends AllEventKeys<SocketAdapterAkalaEventMap>>(event: TEvent, handler: EventListener<AllEvents<SocketAdapterAkalaEventMap>[TEvent]>, options?: EventOptions<AllEvents<SocketAdapterAkalaEventMap>[TEvent]>): Subscription;
once<const TEvent extends AllEventKeys<SocketAdapterAkalaEventMap>>(event: TEvent, handler: EventListener<AllEvents<SocketAdapterAkalaEventMap>[TEvent]>): Subscription;
}
export default class Client extends ClientBase<ReadableStream, {
protocols?: string | string[];
}> {
connection(socket: SocketAdapter): Connection;
constructor(options?: {
protocols?: string | string[];
});
static connect(address: string, options?: {
protocols?: string | string[];
}): SocketAdapter;
}
export declare function createClient(options?: {
protocols?: string | string[];
}): Client;
export declare const connect: typeof Client.connect;