This commit is contained in:
Louis Mazin 2025-12-09 19:34:07 +01:00
parent cf148ac01c
commit 90d2507cd0

View File

@ -141,19 +141,15 @@ const checkAndManageWebSocket = async () => {
try { try {
await cleanExpiredCodes(); await cleanExpiredCodes();
const hasActiveCodes = await hasActiveLinkCodes(); // Le WebSocket doit toujours être connecté maintenant (pour les déconnexions)
if (!ws && !isConnecting) {
if (hasActiveCodes && !ws && !isConnecting) { console.log('🔌 Connexion au WebSocket pour surveillance...');
console.log('🔌 Codes de liaison actifs détectés, connexion au WebSocket...');
const serverId = process.env.PTERODACTYL_SERVER_ID; const serverId = process.env.PTERODACTYL_SERVER_ID;
const pterodactylToken = process.env.PTERODACTYL_API_TOKEN; const pterodactylToken = process.env.PTERODACTYL_API_TOKEN;
await connectWebSocket(pterodactylToken, serverId); await connectWebSocket(pterodactylToken, serverId);
} else if (!hasActiveCodes && ws) {
console.log('🔌 Aucun code actif, fermeture du WebSocket...');
stopWebSocketOnly();
} }
} catch (error) { } catch (error) {
console.error('Erreur lors de la vérification des codes actifs:', error); console.error('Erreur lors de la vérification du WebSocket:', error);
} }
}; };
@ -234,7 +230,7 @@ const connectWebSocket = async (pterodactylToken, serverId) => {
if (playerData) { if (playerData) {
await handleLinkCommand(linkData.playerName, playerData, linkData.code); await handleLinkCommand(linkData.playerName, playerData, linkData.code);
setTimeout(() => checkAndManageWebSocket(), 2000); // Ne plus vérifier si on doit fermer le WebSocket
} else { } else {
console.log(`❌ Impossible de trouver le Steam ID pour ${linkData.playerName}`); console.log(`❌ Impossible de trouver le Steam ID pour ${linkData.playerName}`);
} }
@ -278,6 +274,14 @@ const connectWebSocket = async (pterodactylToken, serverId) => {
clearInterval(heartbeatInterval); clearInterval(heartbeatInterval);
heartbeatInterval = null; heartbeatInterval = null;
} }
// Tenter une reconnexion après 5 secondes
if (isMonitoring) {
console.log('🔄 Reconnexion dans 5 secondes...');
reconnectTimeout = setTimeout(() => {
checkAndManageWebSocket();
}, 5000);
}
}); });
} catch (error) { } catch (error) {