From 2e2d22fc3901a8bbde7590fb3f9a488c6a316a5f Mon Sep 17 00:00:00 2001 From: jessy-david-dev Date: Fri, 17 Apr 2026 15:20:42 +0200 Subject: [PATCH] fix(multi): add periodic heartbeat every 20s to prevent players being pruned in lobby --- lib/useMultiGame.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/useMultiGame.ts b/lib/useMultiGame.ts index adf9d87..cde11ce 100644 --- a/lib/useMultiGame.ts +++ b/lib/useMultiGame.ts @@ -107,6 +107,19 @@ export function useMultiGame() { }; } + // Heartbeat toutes les 20s pour rester dans la room (évite le pruning) + useEffect(() => { + const id = setInterval(() => { + if (!sseCodeRef.current || !ssePidRef.current) return; + fetch(`/api/rooms/${sseCodeRef.current}`, { + method: "PATCH", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ action: "heartbeat", playerId: ssePidRef.current }), + }).catch(() => {}); + }, 20_000); + return () => clearInterval(id); + }, []); + // Quand le tab redevient visible : heartbeat immédiat pour rafraîchir l'état useEffect(() => { function onVisible() {