L'evento push può essere semplicemente una notifica che roba è cambiata sul server. Non deve contenere i dati effettivi. I clienti possono estrarre quei dati solo se e quando ne hanno bisogno. In questo modo, non avrai nessun sovraccarico sul server. Al contrario, ti sbarazzi delle richieste di polling ogni 5 secondi.
L'unico svantaggio di questo approccio è la latenza più alta rispetto al server che spinge tutto lo scenario dei dati, a causa dell'ulteriore round trip, ma la latenza è attualmente in media di circa 2,5 secondi, (circa la metà dei 5 secondi di polling intervallo,) quindi il viaggio di andata e ritorno che sto suggerendo in realtà rappresenta un enorme miglioramento rispetto a quello che attualmente hai.
Inoltre, il server non ha bisogno di inviare una notifica push a un cliente che ha già ricevuto una notifica push ma non ha ancora richiesto alcun dato. Ciò significa che puoi ridurre drasticamente le notifiche push.
Quindi, le chatter tra il client e il server vanno come segue:
Server to client: "Stuff has changed".
Client to server: "Gimme the changed stuff since XX:XX:XX GMT".
Server to client: "Here is your changed stuff".