/* Communication WebSocket avec le backend */ let ws = null; let wsReconnectTimer = null; const wsCallbacks = {}; function wsConnecter() { const proto = location.protocol === 'https:' ? 'wss:' : 'ws:'; ws = new WebSocket(`${proto}//${location.host}/ws`); ws.onopen = () => { console.log('WebSocket connecte'); if (wsReconnectTimer) { clearInterval(wsReconnectTimer); wsReconnectTimer = null; } }; ws.onmessage = (event) => { const msg = JSON.parse(event.data); const cbs = wsCallbacks[msg.type]; if (cbs) cbs.forEach(cb => cb(msg)); }; ws.onclose = () => { console.log('WebSocket deconnecte, rechargement dans 5s...'); setTimeout(() => { location.reload(); }, 5000); }; ws.onerror = () => { ws.close(); }; } function wsEnvoyer(msg) { if (ws && ws.readyState === WebSocket.OPEN) { ws.send(JSON.stringify(msg)); } } function wsOnMessage(type, callback) { if (!wsCallbacks[type]) wsCallbacks[type] = []; wsCallbacks[type].push(callback); } // Connexion au demarrage wsConnecter();