diff --git a/src/data/binanceWs.js b/src/data/binanceWs.js index aa4d8d0..ef1fdc4 100644 --- a/src/data/binanceWs.js +++ b/src/data/binanceWs.js @@ -42,9 +42,12 @@ export function startBinanceTradeStream({ symbol = CONFIG.symbol, onUpdate } = { } }); + let reconnecting = false; const scheduleReconnect = () => { - if (closed) return; + if (closed || reconnecting) return; + reconnecting = true; try { + ws?.removeAllListeners(); ws?.terminate(); } catch { // ignore diff --git a/src/data/chainlinkWs.js b/src/data/chainlinkWs.js index 8a64690..fc11afc 100644 --- a/src/data/chainlinkWs.js +++ b/src/data/chainlinkWs.js @@ -66,9 +66,12 @@ export function startChainlinkPriceStream({ } }; + let reconnecting = false; const scheduleReconnect = () => { - if (closed) return; + if (closed || reconnecting) return; + reconnecting = true; try { + ws?.removeAllListeners(); ws?.terminate(); } catch { // ignore diff --git a/src/data/polymarketLiveWs.js b/src/data/polymarketLiveWs.js index 58a4403..11e6525 100644 --- a/src/data/polymarketLiveWs.js +++ b/src/data/polymarketLiveWs.js @@ -51,9 +51,12 @@ export function startPolymarketChainlinkPriceStream({ agent: wsAgentForUrl(wsUrl) }); + let reconnecting = false; const scheduleReconnect = () => { - if (closed) return; + if (closed || reconnecting) return; + reconnecting = true; try { + ws?.removeAllListeners(); ws?.terminate(); } catch { // ignore