diff --git a/frontend/src/store/index.js b/frontend/src/store/index.js index d15a3e5..c51e013 100644 --- a/frontend/src/store/index.js +++ b/frontend/src/store/index.js @@ -130,11 +130,20 @@ const store = createStore({ } const daemonUrl = import.meta.env.VITE_DAEMON_SOCKET || 'wss://www.your-part.de:4551'; console.log('🔌 Initializing Daemon WebSocket connection to:', daemonUrl); + console.log('🔌 Protocol:', 'yourpart-protocol'); try { - const daemonSocket = new WebSocket(daemonUrl, 'yourpart-protocol'); + // Versuche zuerst mit Protokoll, dann ohne + let daemonSocket; + try { + daemonSocket = new WebSocket(daemonUrl, 'yourpart-protocol'); + } catch (protocolError) { + console.warn('⚠️ Protocol error, trying without protocol:', protocolError); + daemonSocket = new WebSocket(daemonUrl); + } daemonSocket.onopen = () => { console.log('✅ Daemon WebSocket connected successfully'); + retryCount = 0; // Reset retry counter on successful connection const payload = JSON.stringify({ user_id: state.user.id, event: 'setUserId', @@ -145,11 +154,24 @@ const store = createStore({ daemonSocket.onclose = (event) => { console.warn('❌ Daemon WebSocket disconnected:', event.reason); + console.warn('❌ Close details:', { + code: event.code, + reason: event.reason, + wasClean: event.wasClean, + readyState: daemonSocket.readyState + }); retryConnection(connectDaemonSocket); }; daemonSocket.onerror = (error) => { console.error('❌ Daemon WebSocket error:', error); + console.error('❌ Error details:', { + type: error.type, + target: error.target, + readyState: daemonSocket.readyState, + url: daemonSocket.url, + protocol: daemonSocket.protocol + }); retryConnection(connectDaemonSocket); }; @@ -174,10 +196,19 @@ const store = createStore({ } }; + let retryCount = 0; + const maxRetries = 5; const retryConnection = (reconnectFn) => { + if (retryCount >= maxRetries) { + console.error('❌ Max retry attempts reached for Daemon WebSocket'); + return; + } + retryCount++; + const delay = Math.min(1000 * Math.pow(2, retryCount - 1), 10000); // Exponential backoff, max 10s + console.log(`🔄 Retrying Daemon WebSocket connection in ${delay}ms (attempt ${retryCount}/${maxRetries})`); setTimeout(() => { reconnectFn(); - }, 1000); + }, delay); }; connectDaemonSocket(); }