mirror of
https://github.com/wisplite/tether-ts.git
synced 2026-05-01 06:22:41 -05:00
pass callbacks to client
This commit is contained in:
Vendored
+6
@@ -4,6 +4,12 @@ export class TetherClient {
|
||||
subscribedQueries = new Map();
|
||||
connect = (url) => {
|
||||
this.websocketHandler.startConnection(url);
|
||||
this.websocketHandler.onQuery = (location, data) => {
|
||||
if (location) {
|
||||
const callback = this.subscribedQueries.get(location);
|
||||
callback?.(data);
|
||||
}
|
||||
};
|
||||
};
|
||||
disconnect = () => {
|
||||
this.websocketHandler.close();
|
||||
|
||||
Vendored
+3
-3
@@ -1,9 +1,9 @@
|
||||
export declare class WebSocketHandler {
|
||||
private ws;
|
||||
private url;
|
||||
private subscribedQueries;
|
||||
private onOpen;
|
||||
private onClose;
|
||||
onOpen: () => void;
|
||||
onQuery: (location: string | undefined, data: any) => void;
|
||||
onClose: () => void;
|
||||
private reconnectAttempts;
|
||||
private maxReconnectAttempts;
|
||||
private reconnectInterval;
|
||||
|
||||
Vendored
+2
-6
@@ -1,8 +1,8 @@
|
||||
export class WebSocketHandler {
|
||||
ws = null;
|
||||
url = '';
|
||||
subscribedQueries = new Map();
|
||||
onOpen = () => { };
|
||||
onQuery = () => { };
|
||||
onClose = () => { };
|
||||
reconnectAttempts = 0;
|
||||
maxReconnectAttempts = 5;
|
||||
@@ -24,11 +24,7 @@ export class WebSocketHandler {
|
||||
ws.onmessage = (event) => {
|
||||
const data = JSON.parse(String(event.data));
|
||||
if (data.type === 'query') {
|
||||
this.subscribedQueries.forEach((callback, query) => {
|
||||
if (data.query === query) {
|
||||
callback(data.data);
|
||||
}
|
||||
});
|
||||
this.onQuery(data.location, data.data);
|
||||
}
|
||||
else if (data.type === 'error') {
|
||||
console.error(data.error);
|
||||
|
||||
@@ -5,6 +5,12 @@ export class TetherClient {
|
||||
|
||||
connect = (url: string) => {
|
||||
this.websocketHandler.startConnection(url);
|
||||
this.websocketHandler.onQuery = (location, data) => {
|
||||
if (location) {
|
||||
const callback = this.subscribedQueries.get(location);
|
||||
callback?.(data);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
disconnect = () => {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
export class WebSocketHandler {
|
||||
private ws: WebSocket | null = null;
|
||||
private url: string = '';
|
||||
private subscribedQueries = new Map<string, (data: any) => void>();
|
||||
private onOpen: () => void = () => {};
|
||||
private onClose: () => void = () => {};
|
||||
public onOpen: () => void = () => {};
|
||||
public onQuery: (location: string | undefined, data: any) => void = () => {};
|
||||
public onClose: () => void = () => {};
|
||||
private reconnectAttempts: number = 0;
|
||||
private maxReconnectAttempts: number = 5;
|
||||
private reconnectInterval: number = 1000;
|
||||
@@ -27,16 +27,12 @@ export class WebSocketHandler {
|
||||
ws.onmessage = (event: MessageEvent) => {
|
||||
const data = JSON.parse(String(event.data)) as {
|
||||
type: string;
|
||||
query?: string;
|
||||
location?: string;
|
||||
data?: unknown;
|
||||
error?: string;
|
||||
};
|
||||
if (data.type === 'query') {
|
||||
this.subscribedQueries.forEach((callback, query) => {
|
||||
if (data.query === query) {
|
||||
callback(data.data);
|
||||
}
|
||||
});
|
||||
this.onQuery(data.location, data.data);
|
||||
} else if (data.type === 'error') {
|
||||
console.error(data.error);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user