diff options
| author | Shulhan <ms@kilabit.info> | 2021-09-27 01:37:03 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2021-09-27 01:38:23 +0700 |
| commit | a3e4a44ba024f478192a807b94e858d523ad4599 (patch) | |
| tree | 5d64f7f4574d59e1f57fbd0f86755f0e034a9eac /websocket_client.d.ts | |
| parent | 665bda4fe5ccf0e12b74262309da39695dd69317 (diff) | |
| download | pakakeh.ts-a3e4a44ba024f478192a807b94e858d523ad4599.tar.xz | |
all: implement WebSocket client
The WebSocket client have only one method "Send" that send request
to the server based on predefined format WuiWebSocketRequest in
synchronous way, which means it will wait for the response and pass it
back to the caller based on the request ID.
Diffstat (limited to 'websocket_client.d.ts')
| -rw-r--r-- | websocket_client.d.ts | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/websocket_client.d.ts b/websocket_client.d.ts new file mode 100644 index 0000000..737fb21 --- /dev/null +++ b/websocket_client.d.ts @@ -0,0 +1,45 @@ +import { WuiResponseInterface } from "./response.js"; +interface RequestQueue { + req: WuiWebSocketRequest; + cbSuccess: (res: WuiWebSocketResponse) => void; + cbFail: (err: string) => void; +} +export interface WuiWebSocketOptions { + address: string; + insecure: boolean; + auto_reconnect: boolean; + auto_reconnect_interval: number; + onBroadcast: (res: WuiWebSocketResponse) => void; + onConnected: () => void; + onDisconnected: () => void; + onError: () => void; +} +export interface WuiWebSocketRequest { + id: number; + method: string; + target: string; + body?: string; +} +export interface WuiWebSocketResponse { + id: number; + code: number; + message: string; + body: string; +} +export declare class WuiWebSocketClient { + opts: WuiWebSocketOptions; + address: string; + conn: WebSocket; + requestQueue: RequestQueue[]; + reconnect_id: number; + isOpen: boolean; + error: string; + constructor(opts: WuiWebSocketOptions); + Send(req: WuiWebSocketRequest): Promise<WuiResponseInterface>; + connect(): void; + onClose(ev: CloseEvent): void; + onError(ev: Event): void; + onMessage(ev: MessageEvent): void; + onOpen(ev: Event): void; +} +export {}; |
