UNPKG

@akala/json-rpc-ws

Version:

json-rpc websocket transport

39 lines (38 loc) 1.89 kB
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;