diff options
| -rw-r--r-- | .env | 1 | ||||
| -rw-r--r-- | .gitignore | 3 | ||||
| -rw-r--r-- | package.json | 3 | ||||
| -rw-r--r-- | pnpm-lock.yaml | 15 | ||||
| -rw-r--r-- | src/lib/socket.js | 21 |
5 files changed, 19 insertions, 24 deletions
@@ -0,0 +1 @@ +VITE_COINOS_URL=http://localhost:3119 @@ -3,6 +3,3 @@ node_modules /build /.svelte-kit /package -.env -.env.* -!.env.example diff --git a/package.json b/package.json index 2fab599f..2801ff01 100644 --- a/package.json +++ b/package.json @@ -21,8 +21,7 @@ "svelte": "^3.44.0", "svelte-preprocess": "^4.10.7", "tailwindcss": "^3.1.6", - "vite": "^3.0.0", - "ws": "^8.8.1" + "vite": "^3.0.0" }, "type": "module" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b5eba6c..d92f3395 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,7 +12,6 @@ specifiers: svelte-preprocess: ^4.10.7 tailwindcss: ^3.1.6 vite: ^3.0.0 - ws: ^8.8.1 devDependencies: '@sveltejs/adapter-auto': 1.0.0-next.63 @@ -26,7 +25,6 @@ devDependencies: svelte-preprocess: 4.10.7_nxvsp6sjiltnatqa6jdm4mr6zu tailwindcss: 3.1.6 vite: 3.0.2 - ws: 8.8.1 packages: @@ -1703,19 +1701,6 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /ws/8.8.1: - resolution: {integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} 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() { |
