aboutsummaryrefslogtreecommitdiffstats
path: root/lib/sockets.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-12-29 09:08:27 +0000
committerAdam Soltys <[email protected]>2023-12-29 09:08:35 +0000
commitf584d7a56762d19ac6c1f5eda87cfb26816d5d57 (patch)
treedca37600e33dd3319cbc5d7e70ab1c70bd14830d /lib/sockets.js
parentcb38551cc4ec392911d18dda9b5a9fe97087ad61 (diff)
downloadcoinos-server-f584d7a56762d19ac6c1f5eda87cfb26816d5d57.tar.gz
coinos-server-f584d7a56762d19ac6c1f5eda87cfb26816d5d57.zip
migrate in more places
Diffstat (limited to 'lib/sockets.js')
-rw-r--r--lib/sockets.js14
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;