From e9ba554fe87e355dff4279b01dd69f41a5ed36b7 Mon Sep 17 00:00:00 2001 From: Aleksandr Kraiz Date: Thu, 1 Jun 2023 16:07:29 +0400 Subject: [PATCH] Fix reconnection --- package-lock.json | 4 ++-- package.json | 4 ++-- src/services/Aggregator/ws/index.ts | 5 ++++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 01fe4bc..05ff04a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@orionprotocol/sdk", - "version": "0.19.11", + "version": "0.19.14", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@orionprotocol/sdk", - "version": "0.19.11", + "version": "0.19.14", "license": "ISC", "dependencies": { "@babel/runtime": "^7.21.0", diff --git a/package.json b/package.json index b347451..37dc572 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.19.13", + "version": "0.19.14", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", @@ -108,4 +108,4 @@ "overrides": { "tsconfig-paths": "^4.0.0" } -} +} \ No newline at end of file diff --git a/src/services/Aggregator/ws/index.ts b/src/services/Aggregator/ws/index.ts index b69a839..5f21b92 100644 --- a/src/services/Aggregator/ws/index.ts +++ b/src/services/Aggregator/ws/index.ts @@ -21,6 +21,7 @@ import futuresTradeInfoSchema from './schemas/futuresTradeInfoSchema.js'; import { objectKeys } from '../../../utils/objectKeys.js'; // import assertError from '../../../utils/assertError.js'; // import errorSchema from './schemas/errorSchema'; +import clone from 'just-clone'; const UNSUBSCRIBE = 'u'; @@ -262,6 +263,7 @@ class AggregatorWS { } } + this.logger?.(`Subscribing to ${type} with id ${id}. Subscription request: ${JSON.stringify(subRequest)}`); this.send(subRequest); const subKey = isExclusive ? 'default' : id; @@ -375,7 +377,7 @@ class AggregatorWS { this.ws.onopen = () => { // Re-subscribe to all subscriptions if (isReconnect) { - const subscriptionsToReconnect = this.subscriptions; + const subscriptionsToReconnect = clone(this.subscriptions); objectKeys(this.subscriptions).forEach((subType) => { // eslint-disable-next-line @typescript-eslint/no-dynamic-delete delete this.subscriptions[subType]; @@ -387,6 +389,7 @@ class AggregatorWS { if (subscriptions) { Object.keys(subscriptions).forEach((subKey) => { const sub = subscriptions[subKey]; + this.logger?.(`AggregatorWS: reconnecting to subscription ${subType} ${subKey}`); if (sub) this.subscribe(subType, sub); }); }