@dydxprotocol/v4-client-js 1.1.25 → 1.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/examples/websocket_example.js +3 -1
- package/build/src/clients/noble-client.js +2 -1
- package/build/src/clients/socket-client.d.ts +24 -2
- package/build/src/clients/socket-client.js +43 -2
- package/examples/websocket_example.ts +3 -0
- package/package.json +1 -1
- package/src/clients/noble-client.ts +2 -1
- package/src/clients/socket-client.ts +46 -1
|
@@ -27,8 +27,10 @@ function test() {
|
|
|
27
27
|
console.error('Error parsing JSON message:', e);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
+
}, (event) => {
|
|
31
|
+
console.error('Encountered error:', event.message);
|
|
30
32
|
});
|
|
31
33
|
mySocket.connect();
|
|
32
34
|
}
|
|
33
35
|
test();
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0X2V4YW1wbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9leGFtcGxlcy93ZWJzb2NrZXRfZXhhbXBsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdEQUFtRDtBQUNuRCxnRUFJc0M7QUFDdEMsMkNBQWdEO0FBRWhELFNBQVMsSUFBSTtJQUNYLE1BQU0sUUFBUSxHQUFHLElBQUksNEJBQVksQ0FDL0IsbUJBQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQy9CLEdBQUcsRUFBRTtRQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0IsQ0FBQyxFQUNELEdBQUcsRUFBRTtRQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0IsQ0FBQyxFQUNELENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JCLElBQUksT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNwQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBYyxDQUFDO1lBQzFDLElBQUk7Z0JBQ0YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG9DQUFvQixDQUFDLFNBQVMsRUFBRTtvQkFDaEQsUUFBUSxDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQzlCLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDekMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN0QyxRQUFRLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGlDQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUMxRSxRQUFRLENBQUMscUJBQXFCLENBQUMsNkJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ3REO2dCQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbkI7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2pEO1NBQ0Y7SUFDSCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNSLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FDRixDQUFDO0lBQ0YsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ3JCLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyJ9
|
|
@@ -21,6 +21,7 @@ class NobleClient {
|
|
|
21
21
|
this.stargateClient = await stargate_1.SigningStargateClient.connectWithSigner(this.restEndpoint, wallet.offlineSigner, {
|
|
22
22
|
registry: new proto_signing_1.Registry([
|
|
23
23
|
['/circle.cctp.v1.MsgDepositForBurn', cctpProto_1.MsgDepositForBurn],
|
|
24
|
+
['/circle.cctp.v1.MsgDepositForBurnWithCaller', cctpProto_1.MsgDepositForBurnWithCaller],
|
|
24
25
|
...stargate_1.defaultRegistryTypes,
|
|
25
26
|
]),
|
|
26
27
|
});
|
|
@@ -71,4 +72,4 @@ class NobleClient {
|
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
exports.NobleClient = NobleClient;
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ibGUtY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvbm9ibGUtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQUFxRTtBQUNyRSwrQ0FRMEI7QUFFMUIsMkNBQTZDO0FBQzdDLCtDQUFpRjtBQUdqRixNQUFhLFdBQVc7SUFNdEIsWUFBWSxZQUFvQixFQUFFLGlCQUEwQjtRQUMxRCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFtQjtRQUMvQixJQUFJLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGFBQWEsTUFBSyxTQUFTLEVBQUU7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLGdDQUFxQixDQUFDLGlCQUFpQixDQUNqRSxJQUFJLENBQUMsWUFBWSxFQUNqQixNQUFNLENBQUMsYUFBYSxFQUNwQjtZQUNFLFFBQVEsRUFBRSxJQUFJLHdCQUFRLENBQUM7Z0JBQ3JCLENBQUMsbUNBQW1DLEVBQUUsNkJBQWlCLENBQUM7Z0JBQ3hELENBQUMsNkNBQTZDLEVBQUUsdUNBQTJCLENBQUM7Z0JBQzVFLEdBQUcsK0JBQW9CO2FBQ3hCLENBQUM7U0FDSCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCOztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENB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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MessageEvent } from 'ws';
|
|
1
|
+
import { ErrorEvent, MessageEvent } from 'ws';
|
|
2
2
|
import { IndexerConfig } from './constants';
|
|
3
3
|
export declare enum IncomingMessageTypes {
|
|
4
4
|
CONNECTED = "connected",
|
|
@@ -23,14 +23,31 @@ export declare class SocketClient {
|
|
|
23
23
|
private onOpenCallback?;
|
|
24
24
|
private onCloseCallback?;
|
|
25
25
|
private onMessageCallback?;
|
|
26
|
+
private onErrorCallback?;
|
|
26
27
|
private lastMessageTime;
|
|
27
|
-
constructor(config: IndexerConfig, onOpenCallback: () => void, onCloseCallback: () => void, onMessageCallback: (event: MessageEvent) => void);
|
|
28
|
+
constructor(config: IndexerConfig, onOpenCallback: () => void, onCloseCallback: () => void, onMessageCallback: (event: MessageEvent) => void, onErrorCallback: (event: ErrorEvent) => void);
|
|
28
29
|
connect(): void;
|
|
29
30
|
/**
|
|
30
31
|
* @description Close the websocket connection.
|
|
31
32
|
*
|
|
32
33
|
*/
|
|
33
34
|
close(): void;
|
|
35
|
+
/**
|
|
36
|
+
* @description Check is the websocket connection connecting
|
|
37
|
+
*/
|
|
38
|
+
isConnecting(): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* @description Check is the websocket connection open
|
|
41
|
+
*/
|
|
42
|
+
isOpen(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* @description Check is the websocket connection closing
|
|
45
|
+
*/
|
|
46
|
+
isClosing(): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* @description Check is the websocket connection closed
|
|
49
|
+
*/
|
|
50
|
+
isClosed(): boolean;
|
|
34
51
|
/**
|
|
35
52
|
* @description Send data to the websocket connection.
|
|
36
53
|
*
|
|
@@ -39,6 +56,7 @@ export declare class SocketClient {
|
|
|
39
56
|
private handleOpen;
|
|
40
57
|
private handleClose;
|
|
41
58
|
private handleMessage;
|
|
59
|
+
private handleError;
|
|
42
60
|
/**
|
|
43
61
|
* @description Set callback when the socket is opened.
|
|
44
62
|
*
|
|
@@ -54,6 +72,10 @@ export declare class SocketClient {
|
|
|
54
72
|
*
|
|
55
73
|
*/
|
|
56
74
|
set onMessage(callback: (event: MessageEvent) => void);
|
|
75
|
+
/**
|
|
76
|
+
* @description Set callback when the socket encounters an error.
|
|
77
|
+
*/
|
|
78
|
+
set onError(callback: (event: ErrorEvent) => void);
|
|
57
79
|
/**
|
|
58
80
|
* @description Send a subscribe message to the websocket connection.
|
|
59
81
|
*
|
|
@@ -38,18 +38,20 @@ var CandlesResolution;
|
|
|
38
38
|
CandlesResolution["ONE_DAY"] = "1DAY";
|
|
39
39
|
})(CandlesResolution = exports.CandlesResolution || (exports.CandlesResolution = {}));
|
|
40
40
|
class SocketClient {
|
|
41
|
-
constructor(config, onOpenCallback, onCloseCallback, onMessageCallback) {
|
|
41
|
+
constructor(config, onOpenCallback, onCloseCallback, onMessageCallback, onErrorCallback) {
|
|
42
42
|
this.lastMessageTime = Date.now();
|
|
43
43
|
this.url = config.websocketEndpoint;
|
|
44
44
|
this.onOpenCallback = onOpenCallback;
|
|
45
45
|
this.onCloseCallback = onCloseCallback;
|
|
46
46
|
this.onMessageCallback = onMessageCallback;
|
|
47
|
+
this.onErrorCallback = onErrorCallback;
|
|
47
48
|
}
|
|
48
49
|
connect() {
|
|
49
50
|
this.ws = new ws_1.default(this.url);
|
|
50
51
|
this.ws.addEventListener('open', this.handleOpen.bind(this));
|
|
51
52
|
this.ws.addEventListener('close', this.handleClose.bind(this));
|
|
52
53
|
this.ws.addEventListener('message', this.handleMessage.bind(this));
|
|
54
|
+
this.ws.addEventListener('error', this.handleError.bind(this));
|
|
53
55
|
}
|
|
54
56
|
/**
|
|
55
57
|
* @description Close the websocket connection.
|
|
@@ -60,6 +62,34 @@ class SocketClient {
|
|
|
60
62
|
(_a = this.ws) === null || _a === void 0 ? void 0 : _a.close();
|
|
61
63
|
this.ws = undefined;
|
|
62
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* @description Check is the websocket connection connecting
|
|
67
|
+
*/
|
|
68
|
+
isConnecting() {
|
|
69
|
+
var _a;
|
|
70
|
+
return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === ws_1.default.CONNECTING;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* @description Check is the websocket connection open
|
|
74
|
+
*/
|
|
75
|
+
isOpen() {
|
|
76
|
+
var _a;
|
|
77
|
+
return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === ws_1.default.OPEN;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* @description Check is the websocket connection closing
|
|
81
|
+
*/
|
|
82
|
+
isClosing() {
|
|
83
|
+
var _a;
|
|
84
|
+
return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === ws_1.default.CLOSING;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* @description Check is the websocket connection closed
|
|
88
|
+
*/
|
|
89
|
+
isClosed() {
|
|
90
|
+
var _a;
|
|
91
|
+
return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === ws_1.default.CLOSED;
|
|
92
|
+
}
|
|
63
93
|
/**
|
|
64
94
|
* @description Send data to the websocket connection.
|
|
65
95
|
*
|
|
@@ -89,6 +119,11 @@ class SocketClient {
|
|
|
89
119
|
}
|
|
90
120
|
}
|
|
91
121
|
}
|
|
122
|
+
handleError(event) {
|
|
123
|
+
if (this.onErrorCallback) {
|
|
124
|
+
this.onErrorCallback(event);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
92
127
|
/**
|
|
93
128
|
* @description Set callback when the socket is opened.
|
|
94
129
|
*
|
|
@@ -110,6 +145,12 @@ class SocketClient {
|
|
|
110
145
|
set onMessage(callback) {
|
|
111
146
|
this.onMessageCallback = callback;
|
|
112
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* @description Set callback when the socket encounters an error.
|
|
150
|
+
*/
|
|
151
|
+
set onError(callback) {
|
|
152
|
+
this.onErrorCallback = callback;
|
|
153
|
+
}
|
|
113
154
|
/**
|
|
114
155
|
* @description Send a subscribe message to the websocket connection.
|
|
115
156
|
*
|
|
@@ -253,4 +294,4 @@ class SocketClient {
|
|
|
253
294
|
}
|
|
254
295
|
}
|
|
255
296
|
exports.SocketClient = SocketClient;
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnRzL3NvY2tldC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQXlEO0FBSXpELElBQUssb0JBR0o7QUFIRCxXQUFLLG9CQUFvQjtJQUN2QiwrQ0FBdUIsQ0FBQTtJQUN2QixtREFBMkIsQ0FBQTtBQUM3QixDQUFDLEVBSEksb0JBQW9CLEtBQXBCLG9CQUFvQixRQUd4QjtBQUVELElBQUssY0FNSjtBQU5ELFdBQUssY0FBYztJQUNqQixnREFBOEIsQ0FBQTtJQUM5Qiw0Q0FBMEIsQ0FBQTtJQUMxQixzQ0FBb0IsQ0FBQTtJQUNwQix3Q0FBc0IsQ0FBQTtJQUN0Qix3Q0FBc0IsQ0FBQTtBQUN4QixDQUFDLEVBTkksY0FBYyxLQUFkLGNBQWMsUUFNbEI7QUFFRCxJQUFZLG9CQU9YO0FBUEQsV0FBWSxvQkFBb0I7SUFDOUIsK0NBQXVCLENBQUE7SUFDdkIsaURBQXlCLENBQUE7SUFDekIsdUNBQWUsQ0FBQTtJQUNmLHFEQUE2QixDQUFBO0lBQzdCLGlFQUF5QyxDQUFBO0lBQ3pDLHFDQUFhLENBQUE7QUFDZixDQUFDLEVBUFcsb0JBQW9CLEdBQXBCLDRCQUFvQixLQUFwQiw0QkFBb0IsUUFPL0I7QUFFRCxJQUFZLGlCQVFYO0FBUkQsV0FBWSxpQkFBaUI7SUFDM0Isd0NBQW1CLENBQUE7SUFDbkIsMkNBQXNCLENBQUE7SUFDdEIsK0NBQTBCLENBQUE7SUFDMUIsOENBQXlCLENBQUE7SUFDekIsdUNBQWtCLENBQUE7SUFDbEIsMENBQXFCLENBQUE7SUFDckIscUNBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQVJXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBUTVCO0FBRUQsTUFBYSxZQUFZO0lBU3ZCLFlBQ0UsTUFBcUIsRUFDckIsY0FBMEIsRUFDMUIsZUFBMkIsRUFDM0IsaUJBQWdELEVBQ2hELGVB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
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from '@cosmjs/stargate';
|
|
11
11
|
|
|
12
12
|
import { GAS_MULTIPLIER } from './constants';
|
|
13
|
-
import { MsgDepositForBurn } from './lib/cctpProto';
|
|
13
|
+
import { MsgDepositForBurn, MsgDepositForBurnWithCaller } from './lib/cctpProto';
|
|
14
14
|
import LocalWallet from './modules/local-wallet';
|
|
15
15
|
|
|
16
16
|
export class NobleClient {
|
|
@@ -39,6 +39,7 @@ export class NobleClient {
|
|
|
39
39
|
{
|
|
40
40
|
registry: new Registry([
|
|
41
41
|
['/circle.cctp.v1.MsgDepositForBurn', MsgDepositForBurn],
|
|
42
|
+
['/circle.cctp.v1.MsgDepositForBurnWithCaller', MsgDepositForBurnWithCaller],
|
|
42
43
|
...defaultRegistryTypes,
|
|
43
44
|
]),
|
|
44
45
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import WebSocket, { MessageEvent } from 'ws';
|
|
1
|
+
import WebSocket, { ErrorEvent, MessageEvent } from 'ws';
|
|
2
2
|
|
|
3
3
|
import { IndexerConfig } from './constants';
|
|
4
4
|
|
|
@@ -40,6 +40,7 @@ export class SocketClient {
|
|
|
40
40
|
private onOpenCallback?: () => void;
|
|
41
41
|
private onCloseCallback?: () => void;
|
|
42
42
|
private onMessageCallback?: (event: MessageEvent) => void;
|
|
43
|
+
private onErrorCallback?: (event: ErrorEvent) => void;
|
|
43
44
|
private lastMessageTime: number = Date.now();
|
|
44
45
|
|
|
45
46
|
constructor(
|
|
@@ -47,11 +48,13 @@ export class SocketClient {
|
|
|
47
48
|
onOpenCallback: () => void,
|
|
48
49
|
onCloseCallback: () => void,
|
|
49
50
|
onMessageCallback: (event: MessageEvent) => void,
|
|
51
|
+
onErrorCallback: (event: ErrorEvent) => void,
|
|
50
52
|
) {
|
|
51
53
|
this.url = config.websocketEndpoint;
|
|
52
54
|
this.onOpenCallback = onOpenCallback;
|
|
53
55
|
this.onCloseCallback = onCloseCallback;
|
|
54
56
|
this.onMessageCallback = onMessageCallback;
|
|
57
|
+
this.onErrorCallback = onErrorCallback;
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
connect(): void {
|
|
@@ -59,6 +62,7 @@ export class SocketClient {
|
|
|
59
62
|
this.ws.addEventListener('open', this.handleOpen.bind(this));
|
|
60
63
|
this.ws.addEventListener('close', this.handleClose.bind(this));
|
|
61
64
|
this.ws.addEventListener('message', this.handleMessage.bind(this));
|
|
65
|
+
this.ws.addEventListener('error', this.handleError.bind(this));
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
/**
|
|
@@ -70,6 +74,34 @@ export class SocketClient {
|
|
|
70
74
|
this.ws = undefined;
|
|
71
75
|
}
|
|
72
76
|
|
|
77
|
+
/**
|
|
78
|
+
* @description Check is the websocket connection connecting
|
|
79
|
+
*/
|
|
80
|
+
isConnecting(): boolean {
|
|
81
|
+
return this.ws?.readyState === WebSocket.CONNECTING;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @description Check is the websocket connection open
|
|
86
|
+
*/
|
|
87
|
+
isOpen(): boolean {
|
|
88
|
+
return this.ws?.readyState === WebSocket.OPEN;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* @description Check is the websocket connection closing
|
|
93
|
+
*/
|
|
94
|
+
isClosing(): boolean {
|
|
95
|
+
return this.ws?.readyState === WebSocket.CLOSING;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @description Check is the websocket connection closed
|
|
100
|
+
*/
|
|
101
|
+
isClosed(): boolean {
|
|
102
|
+
return this.ws?.readyState === WebSocket.CLOSED;
|
|
103
|
+
}
|
|
104
|
+
|
|
73
105
|
/**
|
|
74
106
|
* @description Send data to the websocket connection.
|
|
75
107
|
*
|
|
@@ -101,6 +133,12 @@ export class SocketClient {
|
|
|
101
133
|
}
|
|
102
134
|
}
|
|
103
135
|
|
|
136
|
+
private handleError(event: ErrorEvent): void {
|
|
137
|
+
if (this.onErrorCallback) {
|
|
138
|
+
this.onErrorCallback(event);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
104
142
|
/**
|
|
105
143
|
* @description Set callback when the socket is opened.
|
|
106
144
|
*
|
|
@@ -125,6 +163,13 @@ export class SocketClient {
|
|
|
125
163
|
this.onMessageCallback = callback;
|
|
126
164
|
}
|
|
127
165
|
|
|
166
|
+
/**
|
|
167
|
+
* @description Set callback when the socket encounters an error.
|
|
168
|
+
*/
|
|
169
|
+
set onError(callback: (event: ErrorEvent) => void) {
|
|
170
|
+
this.onErrorCallback = callback;
|
|
171
|
+
}
|
|
172
|
+
|
|
128
173
|
/**
|
|
129
174
|
* @description Send a subscribe message to the websocket connection.
|
|
130
175
|
*
|