aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/rates.js16
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);
};