diff options
| author | Adam Soltys <[email protected]> | 2023-12-29 09:08:27 +0000 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-12-29 09:08:35 +0000 |
| commit | f584d7a56762d19ac6c1f5eda87cfb26816d5d57 (patch) | |
| tree | dca37600e33dd3319cbc5d7e70ab1c70bd14830d /lib/sockets.js | |
| parent | cb38551cc4ec392911d18dda9b5a9fe97087ad61 (diff) | |
| download | coinos-server-f584d7a56762d19ac6c1f5eda87cfb26816d5d57.tar.gz coinos-server-f584d7a56762d19ac6c1f5eda87cfb26816d5d57.zip | |
migrate in more places
Diffstat (limited to 'lib/sockets.js')
| -rw-r--r-- | lib/sockets.js | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/sockets.js b/lib/sockets.js index c1a704c9..44b3bf2a 100644 --- a/lib/sockets.js +++ b/lib/sockets.js @@ -1,4 +1,5 @@ import config from "$config"; +import migrate from "$lib/migrate"; import store from "$lib/store"; import jwt from "jsonwebtoken"; import { v4 } from "uuid"; @@ -52,7 +53,8 @@ let track = async (ws, token) => { if (!uid) throw new Error("Invalid JWT token"); let user = await g(`user:${uid}`); - if (!user) throw new Error("User not found"); + if (!user) user = migrate(id); + if (!user) throw new Error(`User not found ${uid}`); if (!store.sockets[uid]) store.sockets[uid] = {}; @@ -92,8 +94,12 @@ export async function socketServer(app) { switch (type) { case "heartbeat": ws.beats = 0; - if (data) await track(ws, data); - ws.send(JSON.stringify({ type: "id", data: ws.id })); + try { + if (data) await track(ws, data); + ws.send(JSON.stringify({ type: "id", data: ws.id })); + } catch (e) { + // err("Failed to send heartbeat", e.message); + } break; case "login": @@ -107,7 +113,7 @@ export async function socketServer(app) { ws.send(JSON.stringify({ type: "logout" })); setTimeout( () => ws && ws.close(code, `closing due to error ${e.message}`), - 1000, + 1000 ); } break; |
