Tengo un juego web multijugador básico donde los jugadores se emparejan en un lobby de 2 cuando ingresan al sitio web. Estoy usando nodejs y express para el lado del servidor.
Quiero que el servidor detecte cuando un jugador " abandona " el lobby para poder emparejar al jugador que queda en el lobby con otra persona. Salir debe incluir cerrar la pestaña, el navegador o actualizar la página.
Intenté enviar una solicitud ajax desde el lado del cliente cuando se activan los eventos "descargar" o "antes de descargar". Sin embargo, encontré que esto es bastante inconsistente y no confiable. He visto a personas usar websockets para administrar tales comunicaciones cliente-servidor, pero nunca las usé. Pensé en usar un temporizador en el lado del servidor para ver si un jugador deja de responder, lo que podría funcionar. ¿Cómo debo implementar esto y cómo resuelven este problema otros juegos web multijugador?
Detalles sobre mi lado del servidor si ayuda: actualmente estoy usando una sesión rápida para decidir las ID de los jugadores. Una vez que los jugadores están en un lobby de 2, envían solicitudes ajax continuas (cada 0,5 segundos) al servidor para obtener información sobre el otro jugador.