diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/rates.js | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/rates.js b/lib/rates.js index 45c5977a..362aaa98 100644 --- a/lib/rates.js +++ b/lib/rates.js @@ -1,14 +1,18 @@ import got from "got"; import config from "$config"; -import { broadcast } from "./sockets"; -import store from "./store"; +import { broadcast } from "$lib/sockets"; +import store from "$lib/store"; import { err, warn } from "$lib/logging"; import { g, s } from "$lib/db"; +import { sleep } from "$lib/utils"; import WebSocket from "ws"; +let last; let ws; -let connect = () => { - if (ws) ws.terminate(); +let connect = async () => { + if (ws && ws.readyState === 1 && Date.now() - last < 5000) return; + if (ws) ws.terminate() && (await sleep(Math.round(Math.random() * 1000))); + ws = new WebSocket("wss://stream.binance.com:9443/ws/btcusdt@ticker"); ws.onmessage = async function(event) { @@ -20,6 +24,7 @@ let connect = () => { }); store.last = msg.c; + last = Date.now(); } catch (e) { console.log(e); err("binance message error", e.message); @@ -30,7 +35,6 @@ let connect = () => { err("binance socket error", error.message); }; - setTimeout(connect, 360000); return ws; }; @@ -57,5 +61,5 @@ export let getRates = async () => { store.fx = fx; - setTimeout(getRates, 7200000); + setTimeout(getRates, 30000); }; |
