From cd739fb52e810795b4feb169db8d1c98f3ffd88b Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Wed, 14 Jan 2026 14:30:50 +0100 Subject: [PATCH] Refactor server.js for improved WebSocket and API configurations - Updated API server to listen on a configurable port (2020) for better flexibility. - Removed WebSocket setup from HTTP server, ensuring Socket.io is only available over HTTPS. - Enhanced logging to clarify Socket.io availability based on TLS configuration. --- backend/server.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/backend/server.js b/backend/server.js index f2b7b64..443c387 100644 --- a/backend/server.js +++ b/backend/server.js @@ -8,8 +8,10 @@ import { setupWebSocket } from './utils/socket.js'; import { syncDatabase } from './utils/syncDatabase.js'; // HTTP-Server für API (Port 2020, intern, über Apache-Proxy) +const API_PORT = Number.parseInt(process.env.PORT || '2020', 10); const httpServer = http.createServer(app); -setupWebSocket(httpServer); +// Socket.io wird nur auf HTTPS-Server bereitgestellt, nicht auf HTTP-Server +// setupWebSocket(httpServer); // Entfernt: Socket.io nur über HTTPS // HTTPS-Server für Socket.io (Port 4443, direkt erreichbar) let httpsServer = null; @@ -30,16 +32,19 @@ if (USE_TLS && TLS_KEY_PATH && TLS_CERT_PATH) { console.log(`[Socket.io] HTTPS-Server für Socket.io konfiguriert auf Port ${SOCKET_IO_PORT}`); } catch (err) { console.error('[Socket.io] Fehler beim Laden der TLS-Zertifikate:', err.message); - console.error('[Socket.io] Socket.io wird nur über HTTP-Server verfügbar sein'); + console.error('[Socket.io] Socket.io wird nicht verfügbar sein'); } +} else { + console.warn('[Socket.io] TLS nicht konfiguriert - Socket.io wird nicht verfügbar sein'); } syncDatabase().then(() => { - const port = process.env.PORT || 3001; - httpServer.listen(port, '127.0.0.1', () => { - console.log(`[API] HTTP-Server läuft auf localhost:${port} (intern, über Apache-Proxy)`); + // API-Server auf Port 2020 (intern, nur localhost) + httpServer.listen(API_PORT, '127.0.0.1', () => { + console.log(`[API] HTTP-Server läuft auf localhost:${API_PORT} (intern, über Apache-Proxy)`); }); + // Socket.io-Server auf Port 4443 (extern, direkt erreichbar) if (httpsServer) { httpsServer.listen(SOCKET_IO_PORT, '0.0.0.0', () => { console.log(`[Socket.io] HTTPS-Server läuft auf Port ${SOCKET_IO_PORT} (direkt erreichbar)`);