oopsie
This commit is contained in:
parent
f3dee6a7d2
commit
36ab7eb4cf
@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user