diff --git a/frontend/src/store/index.js b/frontend/src/store/index.js index 1333800..99955e0 100644 --- a/frontend/src/store/index.js +++ b/frontend/src/store/index.js @@ -187,6 +187,30 @@ const store = createStore({ if (!socketIoUrl && (import.meta.env.DEV || window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1')) { socketIoUrl = 'http://localhost:3001'; } + + // Normalisiere URL (Env-Variablen enthalten teils Ports/Pfade wie :4443 oder /api) + // In Produktion sollte Socket.IO idealerweise über den gleichen Origin (443) laufen (Reverse-Proxy), + // damit kein separater Port im Browser benötigt wird. + try { + const hostname = window.location.hostname; + const isProduction = hostname === 'www.your-part.de' || hostname.includes('your-part.de'); + if (socketIoUrl) { + const parsed = new URL(socketIoUrl, window.location.origin); + // Falls /api oder ähnliche Pfade enthalten sind → auf Origin reduzieren + socketIoUrl = parsed.origin; + + // Falls in Produktion ein unüblicher Port gesetzt ist (z.B. :4443) → auf aktuellen Origin zurückfallen + if (isProduction && parsed.hostname === hostname && parsed.port && parsed.port !== '443') { + console.warn('[socket.io] Ungewöhnlicher Port in VITE_SOCKET_IO_URL erkannt, fallback auf window.location.origin:', parsed.origin, '→', window.location.origin); + socketIoUrl = window.location.origin; + } + } + } catch (e) { + // Wenn Parsing fehlschlägt: letzte Rettung ist der aktuelle Origin + try { + socketIoUrl = window.location.origin; + } catch (_) {} + } const socket = io(socketIoUrl, { secure: true,