diff --git a/backend/scripts/testWebSocket.js b/backend/scripts/testWebSocket.js new file mode 100644 index 0000000..b00a470 --- /dev/null +++ b/backend/scripts/testWebSocket.js @@ -0,0 +1,63 @@ +#!/usr/bin/env node +/** + * Test-Script zum Prüfen, ob der WebSocket-Server lokal erreichbar ist + * + * Verwendung: + * node scripts/testWebSocket.js + * node scripts/testWebSocket.js localhost 3050 + */ + +import { io } from 'socket.io-client'; + +const host = process.argv[2] || 'localhost'; +const port = process.argv[3] || '3050'; +const url = `http://${host}:${port}`; + +console.log(`🔌 Teste WebSocket-Verbindung zu ${url}...`); + +const socket = io(url, { + path: '/socket.io/', + transports: ['websocket', 'polling'], + reconnection: false, + timeout: 5000, +}); + +socket.on('connect', () => { + console.log('✅ WebSocket-Verbindung erfolgreich!'); + console.log(` Socket ID: ${socket.id}`); + console.log(` Transport: ${socket.io.engine.transport.name}`); + + // Test: Trete einem Club-Raum bei + socket.emit('join-club', 1); + console.log(' Test: join-club Event gesendet'); + + // Nach 2 Sekunden trennen + setTimeout(() => { + socket.disconnect(); + console.log(' Verbindung getrennt.'); + process.exit(0); + }, 2000); +}); + +socket.on('connect_error', (error) => { + console.error('❌ WebSocket-Verbindungsfehler:'); + console.error(` ${error.message}`); + if (error.message.includes('ECONNREFUSED')) { + console.error(' → Server läuft möglicherweise nicht oder ist nicht erreichbar'); + } + process.exit(1); +}); + +socket.on('disconnect', (reason) => { + console.log(` Getrennt: ${reason}`); +}); + +// Timeout nach 10 Sekunden +setTimeout(() => { + if (socket.connected) { + socket.disconnect(); + } + console.error('❌ Timeout: Keine Verbindung innerhalb von 10 Sekunden'); + process.exit(1); +}, 10000); +