Ho un server HTTP RESTful Node.js Express Chiamerò il server A e un server express.io Express Chiamerò il server B.
Il server A risponde a tutte le richieste HTTP dei client e il server B ascolta l'oplog MongoDB e invia gli aggiornamenti del database attualmente a tutti client.
Non voglio inviare tutti gli aggiornamenti del DB a tutti i client -Voglio ottimizzare il sistema in modo che il server B e i client connessi subiscano meno carichi dal partizionamento del server B in modo che solo alcuni / Gli aggiornamenti DB rilevanti vengono inviati a determinati client ... In questo modo il server B potrebbe inviare solo una frazione dei messaggi che avrebbe prima e ogni client non dovrà gestire tutti gli aggiornamenti.
Ho letto un po 'su socket.io rooms e su come i client possono unirsi a uno spazio dei nomi.
In passato ho aggiunto l'id utente a tutte le raccolte MongoDB che appartengono a un determinato utente, quindi potrei avere ogni client unirsi allo spazio dei nomi indicato dal loro id utente.
Questo potrebbe significare che ogni client ottiene solo gli aggiornamenti corrispondenti al proprio spazio dei nomi sul server + alcuni aggiornamenti universali che riguardano tutti gli utenti.
La mia domanda è come progettarla al meglio in modo che tutti gli utenti ottengano gli aggiornamenti di cui hanno bisogno riducendo al minimo il carico sul server e sui client.
Qualcuno ha qualche consiglio su come farlo al meglio con MongoDB, l'oplog MongoDB e un server socket.io separato?