From b0cf79eb7242700e6d13c0d5e3eada5e390f8fb3 Mon Sep 17 00:00:00 2001 From: Aleksandr Kraiz Date: Tue, 17 May 2022 10:41:42 +0400 Subject: [PATCH] Fix heartbeat --- package.json | 2 +- src/services/PriceFeed/ws/PriceFeedAllTickersWS.ts | 5 ++++- src/services/PriceFeed/ws/PriceFeedLastPriceWS.ts | 5 ++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 5402abf..6b0f02e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.5.18", + "version": "0.5.19", "description": "Orion Protocol SDK", "main": "./lib/esm/index.js", "module": "./lib/esm/index.js", diff --git a/src/services/PriceFeed/ws/PriceFeedAllTickersWS.ts b/src/services/PriceFeed/ws/PriceFeedAllTickersWS.ts index 3e953e6..cd879de 100644 --- a/src/services/PriceFeed/ws/PriceFeedAllTickersWS.ts +++ b/src/services/PriceFeed/ws/PriceFeedAllTickersWS.ts @@ -9,13 +9,15 @@ const schema = z.array(z.union([ export default class PriceFeedAllTickersWS { private pairsWebSocket: WebSocket; + private heartbeatInterval: ReturnType; + constructor( url: string, updateData: (pairs: z.infer[]) => void, ) { this.pairsWebSocket = new WebSocket(url); - setInterval(() => { + this.heartbeatInterval = setInterval(() => { this.pairsWebSocket.send('heartbeat'); }, 15000); @@ -31,6 +33,7 @@ export default class PriceFeedAllTickersWS { } kill() { + clearInterval(this.heartbeatInterval); this.pairsWebSocket.close(); } } diff --git a/src/services/PriceFeed/ws/PriceFeedLastPriceWS.ts b/src/services/PriceFeed/ws/PriceFeedLastPriceWS.ts index f07f82e..df957b0 100644 --- a/src/services/PriceFeed/ws/PriceFeedLastPriceWS.ts +++ b/src/services/PriceFeed/ws/PriceFeedLastPriceWS.ts @@ -9,6 +9,8 @@ const schema = z.tuple([ export default class PriceFeedLastPriceWS { private pairsWebSocket: WebSocket; + private heartbeatInterval: ReturnType; + constructor( url: string, pair: string, @@ -16,7 +18,7 @@ export default class PriceFeedLastPriceWS { ) { this.pairsWebSocket = new WebSocket(url + pair); - setInterval(() => { + this.heartbeatInterval = setInterval(() => { this.pairsWebSocket.send('heartbeat'); }, 15000); @@ -30,6 +32,7 @@ export default class PriceFeedLastPriceWS { } kill() { + clearInterval(this.heartbeatInterval); this.pairsWebSocket.close(); } }