oopsie
Some checks failed
Deploy Backend / docker (ubuntu-latest) (push) Successful in 54s
Deploy Website / docker (ubuntu-latest) (push) Has been cancelled

This commit is contained in:
Lee 2024-10-22 17:32:09 +01:00
parent f3dee6a7d2
commit 36ab7eb4cf
2 changed files with 14 additions and 17 deletions

@ -23,7 +23,8 @@ import LeaderboardController from "./controller/leaderboard.controller";
import { getAppVersion } from "./common/app.util"; import { getAppVersion } from "./common/app.util";
import { connectScoresaberWebsocket } from "@ssr/common/websocket/scoresaber-websocket"; import { connectScoresaberWebsocket } from "@ssr/common/websocket/scoresaber-websocket";
import { connectBeatLeaderWebsocket } from "@ssr/common/websocket/beatleader-websocket"; import { connectBeatLeaderWebsocket } from "@ssr/common/websocket/beatleader-websocket";
import { initDiscordBot } from "./bot/bot"; import { DiscordChannels, initDiscordBot, logToChannel } from "./bot/bot";
import { EmbedBuilder } from "discord.js";
// Load .env file // Load .env file
dotenv.config({ dotenv.config({
@ -40,11 +41,23 @@ connectScoresaberWebsocket({
await ScoreService.trackScoreSaberScore(score); await ScoreService.trackScoreSaberScore(score);
await ScoreService.notifyNumberOne(score); await ScoreService.notifyNumberOne(score);
}, },
onDisconnect: async error => {
await logToChannel(
DiscordChannels.backendLogs,
new EmbedBuilder().setDescription(`ScoreSaber websocket disconnected: ${JSON.stringify(error)}`)
);
},
}); });
connectBeatLeaderWebsocket({ connectBeatLeaderWebsocket({
onScore: async score => { onScore: async score => {
await ScoreService.trackBeatLeaderScore(score); await ScoreService.trackBeatLeaderScore(score);
}, },
onDisconnect: async error => {
await logToChannel(
DiscordChannels.backendLogs,
new EmbedBuilder().setDescription(`BeatLeader websocket disconnected: ${JSON.stringify(error)}`)
);
},
}); });
export const app = new Elysia(); export const app = new Elysia();

@ -1,6 +1,4 @@
import WebSocket from "ws"; import WebSocket from "ws";
import { DiscordChannels, logToChannel } from "backend/src/bot/bot";
import { EmbedBuilder } from "discord.js";
export type WebsocketCallbacks = { export type WebsocketCallbacks = {
/** /**
@ -36,18 +34,6 @@ type Websocket = {
export function connectWebSocket({ name, url, onMessage, onDisconnect }: Websocket) { export function connectWebSocket({ name, url, onMessage, onDisconnect }: Websocket) {
let websocket: WebSocket | null = null; let websocket: WebSocket | null = null;
/**
* Logs to the backend logs channel.
*
* @param error the error to log
*/
async function log(error: WebSocket.ErrorEvent | WebSocket.CloseEvent) {
await logToChannel(
DiscordChannels.backendLogs,
new EmbedBuilder().setDescription(`${name} websocket disconnected: ${JSON.stringify(error)}`)
);
}
function connectWs() { function connectWs() {
websocket = new WebSocket(url); websocket = new WebSocket(url);
@ -62,14 +48,12 @@ export function connectWebSocket({ name, url, onMessage, onDisconnect }: Websock
} }
onDisconnect && onDisconnect(event); onDisconnect && onDisconnect(event);
log(event);
}; };
websocket.onclose = event => { websocket.onclose = event => {
console.log(`Lost connection to the ${name} WebSocket. Attempting to reconnect...`); console.log(`Lost connection to the ${name} WebSocket. Attempting to reconnect...`);
onDisconnect && onDisconnect(event); onDisconnect && onDisconnect(event);
log(event);
setTimeout(connectWs, 5000); // Reconnect after 5 seconds setTimeout(connectWs, 5000); // Reconnect after 5 seconds
}; };