aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/socket.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/socket.js')
-rw-r--r--src/lib/socket.js21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/lib/socket.js b/src/lib/socket.js
index 0360acd5..ab05ade1 100644
--- a/src/lib/socket.js
+++ b/src/lib/socket.js
@@ -1,4 +1,10 @@
import { rate, ws } from '$lib/store';
+
+const token =
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImJvYiIsImlhdCI6MTY1ODc5NDkxMX0._zFTEADrbLffcXa5sIMrJtJ483VdIiYmsdt2ofibxu4';
+
+let interval, socket;
+
export const messages = (data) => ({
rate() {
rate.set(data);
@@ -6,23 +12,31 @@ export const messages = (data) => ({
payment() {
console.log(data);
+ },
+
+ connected() {
+ socket.send(JSON.stringify({ type: 'login', data: token }));
}
});
-const token =
- 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImJvYiIsImlhdCI6MTY1ODc5NDkxMX0._zFTEADrbLffcXa5sIMrJtJ483VdIiYmsdt2ofibxu4';
const initialReconnectDelay = 1000;
const maxReconnectDelay = 16000;
let currentReconnectDelay = initialReconnectDelay;
-let socket;
export function connect() {
+ clearInterval(interval);
+
socket = new WebSocket('ws://localhost:3119/ws');
socket.addEventListener('open', onWebsocketOpen);
socket.addEventListener('close', onWebsocketClose);
socket.addEventListener('message', onWebsocketMessage);
+ interval = setInterval(
+ () => socket.readyState === 1 && socket.send(JSON.stringify({ type: 'heartbeat' })),
+ 5000
+ );
+
ws.set(socket);
}
@@ -33,7 +47,6 @@ function onWebsocketMessage(msg) {
function onWebsocketOpen() {
currentReconnectDelay = initialReconnectDelay;
- socket.send(JSON.stringify({ type: 'login', data: token }));
}
function onWebsocketClose() {