aboutsummaryrefslogtreecommitdiff
path: root/websocket_client.d.ts
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2021-09-27 01:37:03 +0700
committerShulhan <ms@kilabit.info>2021-09-27 01:38:23 +0700
commita3e4a44ba024f478192a807b94e858d523ad4599 (patch)
tree5d64f7f4574d59e1f57fbd0f86755f0e034a9eac /websocket_client.d.ts
parent665bda4fe5ccf0e12b74262309da39695dd69317 (diff)
downloadpakakeh.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.ts45
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 {};