Estoy tratando de configurar un servidor donde los clientes puedan conectarse y esencialmente "levantar la mano", que se ilumina para cada cliente, pero solo uno a la vez. Actualmente solo uso el módulo express para enviar una respuesta POST al hacer clic en un botón. El servidor lo toma como JSON y lo escribe en un archivo. Todos los clientes solicitan constantemente este archivo para verificar el estado y ver si el canal está despejado.
Sospecho que hay un enfoque más simplificado para esto, pero no sé qué módulos o métodos podrían ser mejores. ¿Puede el servidor enviar variables a los clientes de alguna manera, en lugar de que los clientes soliciten constantemente un archivo? Entonces, ¿el script del cliente puede recibir la variable y cambiar los elementos de la página en consecuencia?
Por lo general, este tipo de tarea se realiza mediante el uso de WebSockets. Dado que ya tiene configurado socket.io , sería genial reutilizarlo.
Desde el servidor, comienza a emitir diferentes mensajes:
socket.emit("hand", { userId: <string> });Desde el cliente, escuche el nuevo evento e invoque el comportamiento apropiado:
socket.on("hand", (payload) => { // payload.userId contains user ID });