Додан моніторінг застосунку

Додани веб компоненти карточок територій та повідомлень
This commit is contained in:
2025-12-08 00:14:56 +02:00
parent e41590546c
commit 85483b85bb
206 changed files with 2370 additions and 595 deletions

View File

@@ -2,6 +2,7 @@ const WebSocket = require("ws");
const { URL } = require('url');
const { routeMessage } = require("./routes");
const { auth } = require("./middleware/auth");
const { pushToMetrics } = require("./middleware/pushToMetrics");
const { setupPing } = require("./utils/ping");
require("dotenv").config();
@@ -28,10 +29,19 @@ wss.on("connection", async (ws, request) => {
ws.user = user;
ws.send(JSON.stringify({ connection: "success", api_version, user: {name: ws.user.name, id: ws.user.id } }));
pushToMetrics({ type: "connection_status", status: "online", api_version, user: {name: ws.user.name, id: ws.user.id } });
// Periodic ping to maintain a connection
setupPing(ws);
ws.on("message", (raw) => {
pushToMetrics({
type: "ws_in",
length: raw.length,
timestamp: Date.now()
});
try {
const message = JSON.parse(raw);
routeMessage(wss, ws, message);
@@ -41,7 +51,10 @@ wss.on("connection", async (ws, request) => {
}
});
ws.on("close", () => console.log("🔌 Client disconnected"));
ws.on("close", () => {
console.log("🔌 Client disconnected");
pushToMetrics({ type: "connection_status", status: "offline" });
});
ws.on("error", (err) => console.error("❌ WS error:", err));
} catch (err) {
console.error("❌ Auth error:", err);