From 011ec3a04729104d5d765a868dcbdd5ce1b03916 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 25 Jul 2022 22:40:25 -0700 Subject: move login message to socket connection event --- src/lib/socket.js | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'src/lib/socket.js') 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() { -- cgit v1.2.3