Sto scrivendo un'app web che è fondamentalmente eventi di Facebook, ma più improvvisata e in tempo reale. Un utente può creare un evento e altri utenti online nell'area (raggio di 30 miglia) dovrebbero immediatamente vedere l'evento. Gli utenti possono registrarsi per gli eventi e l'host dovrebbe vedere gli inviti. L'host può annullare l'evento e tutti i partecipanti devono ricevere un avviso. Non è necessario alcun polling o aggiornamento lungo e molto probabilmente userò websockets (socket.io)
Questo concetto è semplice da descrivere, ma ho mal di testa solo a pensare a come esattamente questo può essere implementato. Soprattutto se un utente ha più sessioni ..
Redis ha catturato la mia attenzione di recente. Posso ricevere suggerimenti sul mio piano di implementazione, per assicurarmi che non stia seguendo un percorso pazzo?
- Tengo traccia delle posizioni degli utenti registrati in Redis.
- L'utente crea un evento e lo memorizzo in Redis.
- trovo tutti gli utenti che si trovano nel raggio di 30 miglia dell'evento e li avvisano tramite socket.io
- L'host e gli utenti che si iscrivono all'evento vengono inseriti in Redis pub / sub per qualsiasi tipo di notifica.
- Una volta che l'evento è finito, rimuovo l'evento da Redis e memorizzo in MySQL
La mia implementazione è fattibile? Ha senso usare Redis qui?