/* 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 cb = wsCallbacks[msg.type]; if (cb) cb(msg); }; ws.onclose = () => { console.log('WebSocket deconnecte, reconnexion dans 3s...'); if (!wsReconnectTimer) { wsReconnectTimer = setInterval(wsConnecter, 3000); } }; ws.onerror = () => { ws.close(); }; } function wsEnvoyer(msg) { if (ws && ws.readyState === WebSocket.OPEN) { ws.send(JSON.stringify(msg)); } } function wsOnMessage(type, callback) { wsCallbacks[type] = callback; } // Connexion au demarrage wsConnecter();