Buondì.
Stavo provando a fare uno script di prova per i Server Sent Events, ma ho questo problema:
- l'idea sarebbe che il server (Apache, nella fattispecie) invii al client piccoli "pacchetti" di tanto in tanto, senza dover riaprire ogni volta una nuova connessione;
- la realtà è che è tutto perfettamente equivalente al fare una richiesta AJAX al server a scadenze fisse.
Ora: leggendo qua e là mi è parso di capire che il problema sia di Apache. Infatti, ogni volta che l'utente fa una richiesta, si apre la connessione, il server elabora la richiesta, PHP e tutto il resto fanno il loro lavoro, poi il server invia i dati e la connessione viene inesorabilmente chiusa e chi s'è visto s'è visto.
Questo è esattamente quello che non dovrebbe accadere con i SSE: in teoria, l'utente dovrebbe fare una richiesta, il server dovrebbe rispondere, ma al contempo tenere traccia della connessione per poterla riaprire in caso di necessità (vale a dire, se un nuovo "evento" ha da essere inviato).
Domanda 1: ho capito bene?
Domanda 2: se ho capito bene, ci sono modi per aggirare la questione e far sì che non si debbano aprire duemila connessioni? Sennò, tanto vale non parlare neppure di SSE e continuare a fare tutto con le richieste asincrone e un bel setInterval().
Grazie.
PS: Facebook usa i SSE per quella cosa in alto a destra che si vede se avete impostato la lingua inglese. Eppure mi pareva di ricordare che Facebook usasse server Apache..