kucoin-api 2.1.23 → 2.2.0
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/README.md +111 -14
- package/dist/cjs/WebsocketAPIClient.d.ts +123 -0
- package/dist/cjs/WebsocketAPIClient.js +147 -0
- package/dist/cjs/WebsocketAPIClient.js.map +1 -0
- package/dist/cjs/WebsocketClient.d.ts +14 -9
- package/dist/cjs/WebsocketClient.js +277 -37
- package/dist/cjs/WebsocketClient.js.map +1 -1
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +4 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/BaseRestClient.d.ts +16 -0
- package/dist/cjs/lib/BaseRestClient.js +46 -12
- package/dist/cjs/lib/BaseRestClient.js.map +1 -1
- package/dist/cjs/lib/BaseWSClient.d.ts +30 -17
- package/dist/cjs/lib/BaseWSClient.js +248 -55
- package/dist/cjs/lib/BaseWSClient.js.map +1 -1
- package/dist/cjs/lib/requestUtils.d.ts +11 -0
- package/dist/cjs/lib/requestUtils.js.map +1 -1
- package/dist/cjs/lib/websocket/WsStore.d.ts +15 -3
- package/dist/cjs/lib/websocket/WsStore.js +61 -12
- package/dist/cjs/lib/websocket/WsStore.js.map +1 -1
- package/dist/cjs/lib/websocket/WsStore.types.d.ts +6 -4
- package/dist/cjs/lib/websocket/WsStore.types.js +2 -2
- package/dist/cjs/lib/websocket/WsStore.types.js.map +1 -1
- package/dist/cjs/lib/websocket/logger.d.ts +1 -0
- package/dist/cjs/lib/websocket/websocket-util.d.ts +12 -6
- package/dist/cjs/lib/websocket/websocket-util.js +17 -8
- package/dist/cjs/lib/websocket/websocket-util.js.map +1 -1
- package/dist/cjs/types/request/futures.types.d.ts +1 -0
- package/dist/cjs/types/websockets/ws-api.d.ts +123 -0
- package/dist/cjs/types/websockets/ws-api.js +22 -0
- package/dist/cjs/types/websockets/ws-api.js.map +1 -0
- package/dist/cjs/types/websockets/ws-events.d.ts +11 -0
- package/dist/cjs/types/websockets/ws-events.js +11 -0
- package/dist/cjs/types/websockets/ws-events.js.map +1 -0
- package/dist/cjs/types/websockets/{client.d.ts → ws-general.d.ts} +5 -0
- package/dist/cjs/types/websockets/{events.js → ws-general.js} +1 -1
- package/dist/cjs/types/websockets/ws-general.js.map +1 -0
- package/dist/mjs/WebsocketAPIClient.d.ts +123 -0
- package/dist/mjs/WebsocketAPIClient.js +143 -0
- package/dist/mjs/WebsocketAPIClient.js.map +1 -0
- package/dist/mjs/WebsocketClient.d.ts +14 -9
- package/dist/mjs/WebsocketClient.js +278 -38
- package/dist/mjs/WebsocketClient.js.map +1 -1
- package/dist/mjs/index.d.ts +4 -3
- package/dist/mjs/index.js +4 -3
- package/dist/mjs/index.js.map +1 -1
- package/dist/mjs/lib/BaseRestClient.d.ts +16 -0
- package/dist/mjs/lib/BaseRestClient.js +47 -13
- package/dist/mjs/lib/BaseRestClient.js.map +1 -1
- package/dist/mjs/lib/BaseWSClient.d.ts +30 -17
- package/dist/mjs/lib/BaseWSClient.js +248 -55
- package/dist/mjs/lib/BaseWSClient.js.map +1 -1
- package/dist/mjs/lib/requestUtils.d.ts +11 -0
- package/dist/mjs/lib/requestUtils.js.map +1 -1
- package/dist/mjs/lib/websocket/WsStore.d.ts +15 -3
- package/dist/mjs/lib/websocket/WsStore.js +61 -12
- package/dist/mjs/lib/websocket/WsStore.js.map +1 -1
- package/dist/mjs/lib/websocket/WsStore.types.d.ts +6 -4
- package/dist/mjs/lib/websocket/WsStore.types.js +2 -2
- package/dist/mjs/lib/websocket/WsStore.types.js.map +1 -1
- package/dist/mjs/lib/websocket/logger.d.ts +1 -0
- package/dist/mjs/lib/websocket/websocket-util.d.ts +12 -6
- package/dist/mjs/lib/websocket/websocket-util.js +15 -7
- package/dist/mjs/lib/websocket/websocket-util.js.map +1 -1
- package/dist/mjs/types/request/futures.types.d.ts +1 -0
- package/dist/mjs/types/websockets/ws-api.d.ts +123 -0
- package/dist/mjs/types/websockets/ws-api.js +19 -0
- package/dist/mjs/types/websockets/ws-api.js.map +1 -0
- package/dist/mjs/types/websockets/ws-events.d.ts +11 -0
- package/dist/mjs/types/websockets/ws-events.js +8 -0
- package/dist/mjs/types/websockets/ws-events.js.map +1 -0
- package/dist/mjs/types/websockets/{client.d.ts → ws-general.d.ts} +5 -0
- package/dist/mjs/types/websockets/ws-general.js +2 -0
- package/dist/mjs/types/websockets/ws-general.js.map +1 -0
- package/llms.txt +5985 -4979
- package/package.json +6 -4
- package/dist/cjs/types/websockets/client.js +0 -3
- package/dist/cjs/types/websockets/client.js.map +0 -1
- package/dist/cjs/types/websockets/events.d.ts +0 -5
- package/dist/cjs/types/websockets/events.js.map +0 -1
- package/dist/cjs/types/websockets/requests.d.ts +0 -8
- package/dist/cjs/types/websockets/requests.js +0 -3
- package/dist/cjs/types/websockets/requests.js.map +0 -1
- package/dist/cjs/types/websockets/wsAPI.d.ts +0 -9
- package/dist/cjs/types/websockets/wsAPI.js +0 -3
- package/dist/cjs/types/websockets/wsAPI.js.map +0 -1
- package/dist/mjs/types/websockets/client.js +0 -2
- package/dist/mjs/types/websockets/client.js.map +0 -1
- package/dist/mjs/types/websockets/events.d.ts +0 -5
- package/dist/mjs/types/websockets/events.js +0 -2
- package/dist/mjs/types/websockets/events.js.map +0 -1
- package/dist/mjs/types/websockets/requests.d.ts +0 -8
- package/dist/mjs/types/websockets/requests.js +0 -2
- package/dist/mjs/types/websockets/requests.js.map +0 -1
- package/dist/mjs/types/websockets/wsAPI.d.ts +0 -9
- package/dist/mjs/types/websockets/wsAPI.js +0 -2
- package/dist/mjs/types/websockets/wsAPI.js.map +0 -1
|
@@ -1,11 +1,45 @@
|
|
|
1
1
|
import EventEmitter from 'events';
|
|
2
2
|
import WebSocket from 'isomorphic-ws';
|
|
3
|
+
import { isMessageEvent, } from '../types/websockets/ws-events.js';
|
|
3
4
|
import { WS_LOGGER_CATEGORY } from '../WebsocketClient.js';
|
|
4
5
|
import { checkWebCryptoAPISupported } from './webCryptoAPI.js';
|
|
5
6
|
import { DefaultLogger } from './websocket/logger.js';
|
|
6
|
-
import {
|
|
7
|
+
import { safeTerminateWs, } from './websocket/websocket-util.js';
|
|
7
8
|
import { WsStore } from './websocket/WsStore.js';
|
|
8
9
|
import { WsConnectionStateEnum, } from './websocket/WsStore.types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Appends wsKey and isWSAPIResponse to all events.
|
|
12
|
+
* Some events are arrays, this handles that nested scenario too.
|
|
13
|
+
*/
|
|
14
|
+
function getFinalEmittable(emittable, wsKey, isWSAPIResponse) {
|
|
15
|
+
if (Array.isArray(emittable)) {
|
|
16
|
+
return emittable.map((subEvent) => getFinalEmittable(subEvent, wsKey, isWSAPIResponse));
|
|
17
|
+
}
|
|
18
|
+
if (Array.isArray(emittable.event)) {
|
|
19
|
+
// Some topics just emit an array.
|
|
20
|
+
// This is consistent with how it was before the WS API upgrade:
|
|
21
|
+
return emittable.event.map((subEvent) => getFinalEmittable(subEvent, wsKey, isWSAPIResponse));
|
|
22
|
+
// const { event, ...others } = emittable;
|
|
23
|
+
// return {
|
|
24
|
+
// ...others,
|
|
25
|
+
// event: event.map((subEvent) =>
|
|
26
|
+
// getFinalEmittable(subEvent, wsKey, isWSAPIResponse),
|
|
27
|
+
// ),
|
|
28
|
+
// };
|
|
29
|
+
}
|
|
30
|
+
if (emittable.event) {
|
|
31
|
+
return {
|
|
32
|
+
...emittable.event,
|
|
33
|
+
wsKey: wsKey,
|
|
34
|
+
isWSAPIResponse: !!isWSAPIResponse,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
...emittable,
|
|
39
|
+
wsKey: wsKey,
|
|
40
|
+
isWSAPIResponse: !!isWSAPIResponse,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
9
43
|
/**
|
|
10
44
|
* Users can conveniently pass topics as strings or objects (object has topic name + optional params).
|
|
11
45
|
*
|
|
@@ -51,6 +85,8 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
51
85
|
authPrivateRequests: false,
|
|
52
86
|
// Automatically re-auth WS API, if we were auth'd before and get reconnected
|
|
53
87
|
reauthWSAPIOnReconnect: true,
|
|
88
|
+
// Whether to use native heartbeats (depends on the exchange)
|
|
89
|
+
useNativeHeartbeats: false,
|
|
54
90
|
...options,
|
|
55
91
|
};
|
|
56
92
|
// Check Web Crypto API support when credentials are provided and no custom sign function is used
|
|
@@ -68,6 +104,11 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
68
104
|
getNewRequestId() {
|
|
69
105
|
return `${++this.wsApiRequestId}`;
|
|
70
106
|
}
|
|
107
|
+
// protected abstract sendWSAPIRequest(
|
|
108
|
+
// wsKey: TWSKey,
|
|
109
|
+
// operation: string,
|
|
110
|
+
// params?: any,
|
|
111
|
+
// ): Promise<unknown>;
|
|
71
112
|
/**
|
|
72
113
|
* Subscribe to one or more topics on a WS connection (identified by WS Key).
|
|
73
114
|
*
|
|
@@ -101,7 +142,7 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
101
142
|
wsKey,
|
|
102
143
|
wsTopicRequests,
|
|
103
144
|
});
|
|
104
|
-
return;
|
|
145
|
+
return isConnectionInProgress;
|
|
105
146
|
}
|
|
106
147
|
// We're connected. Check if auth is needed and if already authenticated
|
|
107
148
|
const isPrivateConnection = this.isPrivateWsKey(wsKey);
|
|
@@ -116,13 +157,13 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
116
157
|
return false;
|
|
117
158
|
}
|
|
118
159
|
// Finally, request subscription to topics if the connection is healthy and ready
|
|
119
|
-
this.requestSubscribeTopics(wsKey, normalisedTopicRequests);
|
|
160
|
+
return this.requestSubscribeTopics(wsKey, normalisedTopicRequests);
|
|
120
161
|
}
|
|
121
162
|
unsubscribeTopicsForWsKey(wsTopicRequests, wsKey) {
|
|
122
163
|
const normalisedTopicRequests = getNormalisedTopicRequests(wsTopicRequests);
|
|
123
164
|
// Store topics, so future automation (post-auth, post-reconnect) has everything needed to resubscribe automatically
|
|
124
165
|
for (const topic of normalisedTopicRequests) {
|
|
125
|
-
this.wsStore.
|
|
166
|
+
this.wsStore.deleteTopic(wsKey, topic);
|
|
126
167
|
}
|
|
127
168
|
const isConnected = this.wsStore.isConnectionState(wsKey, WsConnectionStateEnum.CONNECTED);
|
|
128
169
|
// If not connected, don't need to do anything.
|
|
@@ -141,7 +182,7 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
141
182
|
return;
|
|
142
183
|
}
|
|
143
184
|
// Finally, request subscription to topics if the connection is healthy and ready
|
|
144
|
-
this.requestUnsubscribeTopics(wsKey, normalisedTopicRequests);
|
|
185
|
+
return this.requestUnsubscribeTopics(wsKey, normalisedTopicRequests);
|
|
145
186
|
}
|
|
146
187
|
/**
|
|
147
188
|
* Splits topic requests into two groups, public & private topic requests
|
|
@@ -187,15 +228,15 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
187
228
|
/**
|
|
188
229
|
* Request connection to a specific websocket, instead of waiting for automatic connection.
|
|
189
230
|
*/
|
|
190
|
-
async connect(wsKey) {
|
|
231
|
+
async connect(wsKey, customUrl, throwOnError) {
|
|
191
232
|
try {
|
|
192
233
|
if (this.wsStore.isWsOpen(wsKey)) {
|
|
193
234
|
this.logger.error('Refused to connect to ws with existing active connection', { ...WS_LOGGER_CATEGORY, wsKey });
|
|
194
|
-
return { wsKey };
|
|
235
|
+
return { wsKey, ws: this.wsStore.getWs(wsKey) };
|
|
195
236
|
}
|
|
196
237
|
if (this.wsStore.isConnectionAttemptInProgress(wsKey)) {
|
|
197
238
|
this.logger.error('Refused to connect to ws, connection attempt already active', { ...WS_LOGGER_CATEGORY, wsKey });
|
|
198
|
-
return;
|
|
239
|
+
return this.wsStore.getConnectionInProgressPromise(wsKey)?.promise;
|
|
199
240
|
}
|
|
200
241
|
if (!this.wsStore.getConnectionState(wsKey) ||
|
|
201
242
|
this.wsStore.isConnectionState(wsKey, WsConnectionStateEnum.INITIAL)) {
|
|
@@ -205,7 +246,7 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
205
246
|
this.wsStore.createConnectionInProgressPromise(wsKey, false);
|
|
206
247
|
}
|
|
207
248
|
try {
|
|
208
|
-
const url = await this.getWsUrl(wsKey);
|
|
249
|
+
const url = customUrl || (await this.getWsUrl(wsKey));
|
|
209
250
|
const ws = this.connectToWsUrl(url, wsKey);
|
|
210
251
|
this.wsStore.setWs(wsKey, ws);
|
|
211
252
|
}
|
|
@@ -213,12 +254,20 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
213
254
|
this.logger.error('Exception fetching WS URL', e);
|
|
214
255
|
throw e;
|
|
215
256
|
}
|
|
216
|
-
return this.wsStore.getConnectionInProgressPromise(wsKey)?.promise;
|
|
217
257
|
}
|
|
218
258
|
catch (err) {
|
|
219
|
-
this.parseWsError('Connection failed', err, wsKey);
|
|
220
|
-
|
|
259
|
+
const canRetry = this.parseWsError('Connection failed', err, wsKey);
|
|
260
|
+
if (canRetry) {
|
|
261
|
+
this.reconnectWithDelay(wsKey, this.options.reconnectTimeout);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
this.logger.info('Preventing retry due to error type to prevent deadlock');
|
|
265
|
+
}
|
|
266
|
+
if (throwOnError) {
|
|
267
|
+
throw err;
|
|
268
|
+
}
|
|
221
269
|
}
|
|
270
|
+
return this.wsStore.getConnectionInProgressPromise(wsKey)?.promise;
|
|
222
271
|
}
|
|
223
272
|
connectToWsUrl(url, wsKey) {
|
|
224
273
|
this.logger.trace(`Opening WS connection to URL: ${url}`, {
|
|
@@ -227,21 +276,31 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
227
276
|
});
|
|
228
277
|
const { protocols = [], ...wsOptions } = this.options.wsOptions || {};
|
|
229
278
|
const ws = new WebSocket(url, protocols, wsOptions);
|
|
230
|
-
ws.onopen = (event) => this.onWsOpen(event, wsKey);
|
|
279
|
+
ws.onopen = (event) => this.onWsOpen(event, wsKey, url, ws);
|
|
231
280
|
ws.onmessage = (event) => this.onWsMessage(event, wsKey, ws);
|
|
232
281
|
ws.onerror = (event) => this.parseWsError('websocket error', event, wsKey);
|
|
233
282
|
ws.onclose = (event) => this.onWsClose(event, wsKey);
|
|
283
|
+
// Native ws ping/pong frames are not in use for okx
|
|
284
|
+
if (this.options.useNativeHeartbeats) {
|
|
285
|
+
if (typeof ws.on === 'function') {
|
|
286
|
+
ws.on('ping', (event) => this.onWsPing(event, wsKey, ws, 'event'));
|
|
287
|
+
ws.on('pong', (event) => this.onWsPong(event, wsKey, 'event'));
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
ws.wsKey = wsKey;
|
|
234
291
|
return ws;
|
|
235
292
|
}
|
|
236
293
|
parseWsError(context, error, wsKey) {
|
|
237
294
|
if (this.wsStore.isConnectionAttemptInProgress(wsKey)) {
|
|
238
|
-
this.setWsState(wsKey, WsConnectionStateEnum.
|
|
295
|
+
this.setWsState(wsKey, WsConnectionStateEnum.ERROR);
|
|
239
296
|
}
|
|
297
|
+
// Allow retry by default (in some places that call this). Prevent deadloop in hard failure (401)
|
|
298
|
+
let canRetry = true;
|
|
240
299
|
if (!error.message) {
|
|
241
300
|
this.logger.error(`${context} due to unexpected error: `, error);
|
|
242
301
|
this.emit('response', { ...error, wsKey });
|
|
243
302
|
this.emit('exception', { ...error, wsKey });
|
|
244
|
-
return;
|
|
303
|
+
return canRetry;
|
|
245
304
|
}
|
|
246
305
|
switch (error.message) {
|
|
247
306
|
case 'Unexpected server response: 401':
|
|
@@ -249,6 +308,7 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
249
308
|
...WS_LOGGER_CATEGORY,
|
|
250
309
|
wsKey,
|
|
251
310
|
});
|
|
311
|
+
canRetry = false;
|
|
252
312
|
break;
|
|
253
313
|
default:
|
|
254
314
|
if (error?.code === 'ENOTFOUND') {
|
|
@@ -258,22 +318,48 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
258
318
|
error,
|
|
259
319
|
connectionState: this.wsStore.getConnectionState(wsKey),
|
|
260
320
|
});
|
|
321
|
+
canRetry = true;
|
|
261
322
|
break;
|
|
262
323
|
}
|
|
324
|
+
if (error?.code === 401) {
|
|
325
|
+
this.logger.error(`${context} due to 401 authorization failure.`, {
|
|
326
|
+
...WS_LOGGER_CATEGORY,
|
|
327
|
+
wsKey,
|
|
328
|
+
});
|
|
329
|
+
canRetry = false;
|
|
330
|
+
}
|
|
263
331
|
this.logger.error(`${context} due to unexpected response error: "${error?.msg || error?.message || error}"`, { ...WS_LOGGER_CATEGORY, wsKey, error });
|
|
264
332
|
break;
|
|
265
333
|
}
|
|
334
|
+
this.emit('response', { ...error, wsKey });
|
|
266
335
|
this.emit('exception', { ...error, wsKey });
|
|
336
|
+
return canRetry;
|
|
267
337
|
}
|
|
268
338
|
/** Get a signature, build the auth request and send it */
|
|
269
|
-
async sendAuthRequest(wsKey) {
|
|
339
|
+
async sendAuthRequest(wsKey, eventToAuth) {
|
|
270
340
|
try {
|
|
271
|
-
this.logger.
|
|
341
|
+
this.logger.trace('Sending auth request...', {
|
|
272
342
|
...WS_LOGGER_CATEGORY,
|
|
273
343
|
wsKey,
|
|
344
|
+
eventToAuth,
|
|
274
345
|
});
|
|
275
|
-
|
|
276
|
-
|
|
346
|
+
await this.assertIsConnected(wsKey);
|
|
347
|
+
// If not required, this won't return anything
|
|
348
|
+
const request = await this.getWsAuthRequestEvent(wsKey, eventToAuth);
|
|
349
|
+
if (!request) {
|
|
350
|
+
// Short-circuit this for the next time it's called
|
|
351
|
+
const wsState = this.wsStore.get(wsKey, true);
|
|
352
|
+
wsState.isAuthenticated = true;
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
if (!this.wsStore.getAuthenticationInProgressPromise(wsKey)) {
|
|
356
|
+
this.wsStore.createAuthenticationInProgressPromise(wsKey, false);
|
|
357
|
+
}
|
|
358
|
+
if (request === 'waitForEvent') {
|
|
359
|
+
return this.wsStore.getAuthenticationInProgressPromise(wsKey)?.promise;
|
|
360
|
+
}
|
|
361
|
+
this.tryWsSend(wsKey, typeof request === 'string' ? request : JSON.stringify(request));
|
|
362
|
+
return this.wsStore.getAuthenticationInProgressPromise(wsKey)?.promise;
|
|
277
363
|
}
|
|
278
364
|
catch (e) {
|
|
279
365
|
this.logger.trace(e, { ...WS_LOGGER_CATEGORY, wsKey });
|
|
@@ -281,6 +367,10 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
281
367
|
}
|
|
282
368
|
reconnectWithDelay(wsKey, connectionDelayMs) {
|
|
283
369
|
this.clearTimers(wsKey);
|
|
370
|
+
if (this.wsStore.getConnectionState(wsKey) !==
|
|
371
|
+
WsConnectionStateEnum.CONNECTING) {
|
|
372
|
+
this.setWsState(wsKey, WsConnectionStateEnum.RECONNECTING);
|
|
373
|
+
}
|
|
284
374
|
this.wsStore.get(wsKey, true).activeReconnectTimer = setTimeout(() => {
|
|
285
375
|
this.logger.info('Reconnecting to websocket', {
|
|
286
376
|
...WS_LOGGER_CATEGORY,
|
|
@@ -376,7 +466,7 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
376
466
|
/**
|
|
377
467
|
* Try sending a string event on a WS connection (identified by the WS Key)
|
|
378
468
|
*/
|
|
379
|
-
tryWsSend(wsKey, wsMessage) {
|
|
469
|
+
tryWsSend(wsKey, wsMessage, throwExceptions) {
|
|
380
470
|
try {
|
|
381
471
|
this.logger.trace('Sending upstream ws message: ', {
|
|
382
472
|
...WS_LOGGER_CATEGORY,
|
|
@@ -399,17 +489,20 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
399
489
|
wsKey,
|
|
400
490
|
exception: e,
|
|
401
491
|
});
|
|
492
|
+
if (throwExceptions) {
|
|
493
|
+
throw e;
|
|
494
|
+
}
|
|
402
495
|
}
|
|
403
496
|
}
|
|
404
|
-
async onWsOpen(event, wsKey) {
|
|
405
|
-
const didReconnectSuccessfully = this.wsStore.isConnectionState(wsKey, WsConnectionStateEnum.RECONNECTING) ||
|
|
406
|
-
|
|
407
|
-
if (
|
|
497
|
+
async onWsOpen(event, wsKey, url, ws) {
|
|
498
|
+
const didReconnectSuccessfully = this.wsStore.isConnectionState(wsKey, WsConnectionStateEnum.RECONNECTING) || this.wsStore.isConnectionState(wsKey, WsConnectionStateEnum.ERROR);
|
|
499
|
+
const isFreshConnectionAttempt = this.wsStore.isConnectionState(wsKey, WsConnectionStateEnum.CONNECTING);
|
|
500
|
+
if (isFreshConnectionAttempt) {
|
|
408
501
|
this.logger.info('Websocket connected', {
|
|
409
502
|
...WS_LOGGER_CATEGORY,
|
|
410
503
|
wsKey,
|
|
411
504
|
});
|
|
412
|
-
this.emit('open', { wsKey, event });
|
|
505
|
+
this.emit('open', { wsKey, event, wsUrl: url, ws });
|
|
413
506
|
}
|
|
414
507
|
else {
|
|
415
508
|
this.logger.info('Websocket reconnected', {
|
|
@@ -421,6 +514,8 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
421
514
|
wsKey,
|
|
422
515
|
event,
|
|
423
516
|
didReconnectSuccessfully,
|
|
517
|
+
wsUrl: url,
|
|
518
|
+
ws,
|
|
424
519
|
});
|
|
425
520
|
}
|
|
426
521
|
this.setWsState(wsKey, WsConnectionStateEnum.CONNECTED);
|
|
@@ -429,6 +524,21 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
429
524
|
if (!this.options.requireConnectionReadyConfirmation) {
|
|
430
525
|
await this.onWsReadyForEvents(wsKey);
|
|
431
526
|
}
|
|
527
|
+
// Resolve & cleanup deferred "connection attempt in progress" promise
|
|
528
|
+
try {
|
|
529
|
+
const connectionInProgressPromise = this.wsStore.getConnectionInProgressPromise(wsKey);
|
|
530
|
+
if (connectionInProgressPromise?.resolve) {
|
|
531
|
+
connectionInProgressPromise.resolve({
|
|
532
|
+
wsKey,
|
|
533
|
+
ws,
|
|
534
|
+
});
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
catch (e) {
|
|
538
|
+
this.logger.error('Exception trying to resolve "connectionInProgress" promise', e);
|
|
539
|
+
}
|
|
540
|
+
// Remove before continuing, in case there's more requests queued
|
|
541
|
+
this.wsStore.removeConnectingInProgressPromise(wsKey);
|
|
432
542
|
}
|
|
433
543
|
/**
|
|
434
544
|
* Called automatically once a connection is ready.
|
|
@@ -444,6 +554,7 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
444
554
|
if (connectionInProgressPromise?.resolve) {
|
|
445
555
|
connectionInProgressPromise.resolve({
|
|
446
556
|
wsKey,
|
|
557
|
+
ws: this.wsStore.getWs(wsKey),
|
|
447
558
|
});
|
|
448
559
|
}
|
|
449
560
|
}
|
|
@@ -455,7 +566,7 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
455
566
|
// Some websockets require an auth packet to be sent after opening the connection
|
|
456
567
|
if (this.isPrivateWsKey(wsKey) &&
|
|
457
568
|
this.options.authPrivateConnectionsOnConnect) {
|
|
458
|
-
await this.
|
|
569
|
+
await this.assertIsAuthenticated(wsKey);
|
|
459
570
|
}
|
|
460
571
|
// Reconnect to topics known before it connected
|
|
461
572
|
const { privateReqs, publicReqs } = this.sortTopicRequestsIntoPublicPrivate([...this.wsStore.getTopics(wsKey)], wsKey);
|
|
@@ -474,6 +585,22 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
474
585
|
onWsAuthenticated(wsKey, event) {
|
|
475
586
|
const wsState = this.wsStore.get(wsKey, true);
|
|
476
587
|
wsState.isAuthenticated = true;
|
|
588
|
+
// Resolve & cleanup deferred "auth attempt in progress" promise
|
|
589
|
+
try {
|
|
590
|
+
const inProgressPromise = this.wsStore.getAuthenticationInProgressPromise(wsKey);
|
|
591
|
+
if (inProgressPromise?.resolve) {
|
|
592
|
+
inProgressPromise.resolve({
|
|
593
|
+
wsKey,
|
|
594
|
+
event,
|
|
595
|
+
ws: wsState.ws,
|
|
596
|
+
});
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
catch (e) {
|
|
600
|
+
this.logger.error('Exception trying to resolve "authenticationInProgress" promise', e);
|
|
601
|
+
}
|
|
602
|
+
// Remove before continuing, in case there's more requests queued
|
|
603
|
+
this.wsStore.removeAuthenticationInProgressPromise(wsKey);
|
|
477
604
|
if (this.options.authPrivateConnectionsOnConnect) {
|
|
478
605
|
const topics = [...this.wsStore.getTopics(wsKey)];
|
|
479
606
|
const privateTopics = topics.filter((topic) => this.isPrivateTopicRequest(topic, wsKey));
|
|
@@ -486,26 +613,33 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
486
613
|
wsState.WSAPIAuthChannel = event.WSAPIAuthChannel;
|
|
487
614
|
}
|
|
488
615
|
}
|
|
616
|
+
onWsPing(event, wsKey, ws, source) {
|
|
617
|
+
this.logger.trace('Received ping', {
|
|
618
|
+
...WS_LOGGER_CATEGORY,
|
|
619
|
+
wsKey,
|
|
620
|
+
event,
|
|
621
|
+
source,
|
|
622
|
+
});
|
|
623
|
+
this.sendPongEvent(wsKey, ws);
|
|
624
|
+
}
|
|
625
|
+
onWsPong(event, wsKey, source) {
|
|
626
|
+
this.logger.trace('Received pong', {
|
|
627
|
+
...WS_LOGGER_CATEGORY,
|
|
628
|
+
wsKey,
|
|
629
|
+
event: event?.data,
|
|
630
|
+
source,
|
|
631
|
+
});
|
|
632
|
+
return;
|
|
633
|
+
}
|
|
489
634
|
onWsMessage(event, wsKey, ws) {
|
|
490
635
|
try {
|
|
491
636
|
// any message can clear the pong timer - wouldn't get a message if the ws wasn't working
|
|
492
637
|
this.clearPongTimer(wsKey);
|
|
493
638
|
if (this.isWsPong(event)) {
|
|
494
|
-
this.
|
|
495
|
-
...WS_LOGGER_CATEGORY,
|
|
496
|
-
wsKey,
|
|
497
|
-
event: event?.data,
|
|
498
|
-
});
|
|
499
|
-
return;
|
|
639
|
+
return this.onWsPong(event, wsKey, 'event');
|
|
500
640
|
}
|
|
501
641
|
if (this.isWsPing(event)) {
|
|
502
|
-
this.
|
|
503
|
-
...WS_LOGGER_CATEGORY,
|
|
504
|
-
wsKey,
|
|
505
|
-
event,
|
|
506
|
-
});
|
|
507
|
-
this.sendPongEvent(wsKey, ws);
|
|
508
|
-
return;
|
|
642
|
+
return this.onWsPing(event, wsKey, ws, 'event');
|
|
509
643
|
}
|
|
510
644
|
if (isMessageEvent(event)) {
|
|
511
645
|
const data = event.data;
|
|
@@ -524,13 +658,14 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
524
658
|
}
|
|
525
659
|
for (const emittable of emittableEvents) {
|
|
526
660
|
if (this.isWsPong(emittable)) {
|
|
527
|
-
this.logger.trace('Received
|
|
661
|
+
this.logger.trace('Received pong2', {
|
|
528
662
|
...WS_LOGGER_CATEGORY,
|
|
529
663
|
wsKey,
|
|
530
664
|
data,
|
|
531
665
|
});
|
|
532
666
|
continue;
|
|
533
667
|
}
|
|
668
|
+
const emittableFinalEvent = getFinalEmittable(emittable, wsKey, emittable.isWSAPIResponse);
|
|
534
669
|
if (emittable.eventType === 'connectionReady') {
|
|
535
670
|
this.logger.trace('Successfully connected - connection ready for events', {
|
|
536
671
|
...WS_LOGGER_CATEGORY,
|
|
@@ -542,7 +677,7 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
542
677
|
!this.options.authPrivateConnectionsOnConnect) {
|
|
543
678
|
wsState.isAuthenticated = true;
|
|
544
679
|
}
|
|
545
|
-
this.emit('response',
|
|
680
|
+
this.emit('response', emittableFinalEvent);
|
|
546
681
|
this.onWsReadyForEvents(wsKey);
|
|
547
682
|
continue;
|
|
548
683
|
}
|
|
@@ -551,11 +686,33 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
551
686
|
...WS_LOGGER_CATEGORY,
|
|
552
687
|
wsKey,
|
|
553
688
|
});
|
|
554
|
-
this.emit(emittable.eventType,
|
|
689
|
+
this.emit(emittable.eventType, emittableFinalEvent);
|
|
555
690
|
this.onWsAuthenticated(wsKey, emittable.event);
|
|
556
691
|
continue;
|
|
557
692
|
}
|
|
558
|
-
|
|
693
|
+
if (emittable.eventType === 'connectionReadyForAuth') {
|
|
694
|
+
this.logger.trace('Ready for auth - requesting auth submission...', {
|
|
695
|
+
...WS_LOGGER_CATEGORY,
|
|
696
|
+
wsKey,
|
|
697
|
+
});
|
|
698
|
+
this.sendAuthRequest(wsKey, emittable.event);
|
|
699
|
+
continue;
|
|
700
|
+
}
|
|
701
|
+
// Other event types are automatically emitted here
|
|
702
|
+
// this.logger.trace(
|
|
703
|
+
// `onWsMessage().emit(${emittable.eventType})`,
|
|
704
|
+
// emittableFinalEvent,
|
|
705
|
+
// );
|
|
706
|
+
try {
|
|
707
|
+
this.emit(emittable.eventType, emittableFinalEvent);
|
|
708
|
+
}
|
|
709
|
+
catch (e) {
|
|
710
|
+
this.logger.error(`Exception in onWsMessage().emit(${emittable.eventType}) handler:`, e);
|
|
711
|
+
}
|
|
712
|
+
// this.logger.trace(
|
|
713
|
+
// `onWsMessage().emit(${emittable.eventType}).done()`,
|
|
714
|
+
// emittableFinalEvent,
|
|
715
|
+
// );
|
|
559
716
|
}
|
|
560
717
|
return;
|
|
561
718
|
}
|
|
@@ -580,7 +737,11 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
580
737
|
...WS_LOGGER_CATEGORY,
|
|
581
738
|
wsKey,
|
|
582
739
|
});
|
|
740
|
+
const wsState = this.wsStore.get(wsKey, true);
|
|
741
|
+
wsState.isAuthenticated = false;
|
|
583
742
|
if (this.wsStore.getConnectionState(wsKey) !== WsConnectionStateEnum.CLOSING) {
|
|
743
|
+
// unintentional close, attempt recovery
|
|
744
|
+
this.logger.trace(`onWsClose(${wsKey}): rejecting all deferred promises...`);
|
|
584
745
|
// clean up any pending promises for this connection
|
|
585
746
|
this.getWsStore().rejectAllDeferredPromises(wsKey, 'connection lost, reconnecting');
|
|
586
747
|
this.setWsState(wsKey, WsConnectionStateEnum.INITIAL);
|
|
@@ -588,9 +749,13 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
588
749
|
this.emit('reconnect', { wsKey, event });
|
|
589
750
|
}
|
|
590
751
|
else {
|
|
752
|
+
// intentional close - clean up
|
|
591
753
|
// clean up any pending promises for this connection
|
|
754
|
+
this.logger.trace(`onWsClose(${wsKey}): rejecting all deferred promises...`);
|
|
592
755
|
this.getWsStore().rejectAllDeferredPromises(wsKey, 'disconnected');
|
|
593
756
|
this.setWsState(wsKey, WsConnectionStateEnum.INITIAL);
|
|
757
|
+
// This was an intentional close, delete all state for this connection, as if it never existed:
|
|
758
|
+
this.wsStore.delete(wsKey);
|
|
594
759
|
this.emit('close', { wsKey, event });
|
|
595
760
|
}
|
|
596
761
|
}
|
|
@@ -604,21 +769,49 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
604
769
|
* Promise-driven method to assert that a ws has successfully connected (will await until connection is open)
|
|
605
770
|
*/
|
|
606
771
|
async assertIsConnected(wsKey) {
|
|
772
|
+
const isConnected = this.getWsStore().isConnectionState(wsKey, WsConnectionStateEnum.CONNECTED);
|
|
773
|
+
if (isConnected) {
|
|
774
|
+
return true;
|
|
775
|
+
}
|
|
776
|
+
const inProgressPromise = this.getWsStore().getConnectionInProgressPromise(wsKey);
|
|
777
|
+
// Already in progress? Await shared promise and retry
|
|
778
|
+
if (inProgressPromise) {
|
|
779
|
+
// this.logger.trace('assertIsConnected(): awaiting...');
|
|
780
|
+
await inProgressPromise.promise;
|
|
781
|
+
// this.logger.trace('assertIsConnected(): awaiting...connected!');
|
|
782
|
+
return;
|
|
783
|
+
}
|
|
784
|
+
// Start connection, it should automatically store/return a promise.
|
|
785
|
+
// this.logger.trace('assertIsConnected(): connecting...');
|
|
786
|
+
await this.connect(wsKey);
|
|
787
|
+
// this.logger.trace('assertIsConnected(): connecting...newly connected!');
|
|
788
|
+
}
|
|
789
|
+
/**
|
|
790
|
+
* Promise-driven method to assert that a ws has been successfully authenticated (will await until auth is confirmed)
|
|
791
|
+
*/
|
|
792
|
+
async assertIsAuthenticated(wsKey) {
|
|
607
793
|
const isConnected = this.getWsStore().isConnectionState(wsKey, WsConnectionStateEnum.CONNECTED);
|
|
608
794
|
if (!isConnected) {
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
//
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
795
|
+
// this.logger.trace('assertIsAuthenticated(): connecting...');
|
|
796
|
+
await this.assertIsConnected(wsKey);
|
|
797
|
+
}
|
|
798
|
+
const inProgressPromise = this.getWsStore().getAuthenticationInProgressPromise(wsKey);
|
|
799
|
+
// Already in progress? Await shared promise and retry
|
|
800
|
+
if (inProgressPromise) {
|
|
801
|
+
// this.logger.trace('assertIsAuthenticated(): awaiting...');
|
|
802
|
+
await inProgressPromise.promise;
|
|
803
|
+
// this.logger.trace('assertIsAuthenticated(): authenticated!');
|
|
804
|
+
return;
|
|
805
|
+
}
|
|
806
|
+
const isAuthenticated = this.wsStore.get(wsKey)?.isAuthenticated;
|
|
807
|
+
if (isAuthenticated) {
|
|
808
|
+
// this.logger.trace('assertIsAuthenticated(): ok');
|
|
809
|
+
return;
|
|
621
810
|
}
|
|
811
|
+
// Start authentication, it should automatically store/return a promise.
|
|
812
|
+
// this.logger.trace('assertIsAuthenticated(): authenticating...');
|
|
813
|
+
await this.sendAuthRequest(wsKey);
|
|
814
|
+
// this.logger.trace('assertIsAuthenticated(): newly authenticated!');
|
|
622
815
|
}
|
|
623
816
|
}
|
|
624
817
|
//# sourceMappingURL=BaseWSClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseWSClient.js","sourceRoot":"","sources":["../../../src/lib/BaseWSClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseWSClient.js","sourceRoot":"","sources":["../../../src/lib/BaseWSClient.ts"],"names":[],"mappings":"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"}
|