Pregunta

Estoy interesado en usar Node.js como servidor de socket para la comunicación basada en flujo con decenas de miles de clientes. Los clientes enviarán votos por piezas particulares de contenido y recibirán actualizaciones de tiempo casi real de votos agregados desde el servidor.

El almacén de datos debe admitir:

  1. Almacenar los votos
  2. Resumiendo los votos casi en realidad
  3. Prevenir múltiples votos dentro de un período de tiempo arbitrario (por ejemplo, los clientes solo pueden votar una vez por una pieza de contenido cada 1 minuto)

Sería preferible algo que ya tenga bibliotecas de clientes para Node.js.

¿Fue útil?

Solución

Recomiendo encarecidamente Rehacer. Es una tienda de clave/valor con operaciones establecidas y de lista. También admite operaciones atómicas para contadores. Hay un cliente para redis para node.js disponible en github. Así es como implementaría sus características:

Almacenar los votos

INCR votes:option:<option>

Resumiendo los votos

MGET votes:option:<option1> votes:option:<option2> ... votes:option:<optionN>

Prevención de múltiples votos (cree una tecla de bloqueo que expire para IP del cliente)

EXPIRE lock:<encoded ip> 60
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top