Visualizzazione risultati 1 fino 4 di 4

Discussione: SSE vs. Apache

  1. #1
    Guest

    Predefinito SSE vs. Apache

    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..

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Non è esattamente così: anzitutto normalmente durante il caricamento della pagina le connessioni instaurate verso il server sono più di una, inoltre la connessione usata per comunicare gli eventi lato server è instaurata a parte, non viene necessariamente riutilizzata una precedente. La cosa conveniente è, come hai detto tu, che non è necessario ogni volta perdere tempo per instaurare la connessione senza poi avere la certezza che ci siano novità sul server.
    Comunque il server Apache non dovrebbe creare problemi, deve solo essere correttamente impostato in modo tale da gestire connessioni che possono durare anche ore.

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Non è esattamente così: anzitutto normalmente durante il caricamento della pagina le connessioni instaurate verso il server sono più di una, inoltre la connessione usata per comunicare gli eventi lato server è instaurata a parte, non viene necessariamente riutilizzata una precedente. La cosa conveniente è, come hai detto tu, che non è necessario ogni volta perdere tempo per instaurare la connessione senza poi avere la certezza che ci siano novità sul server.
    Comunque il server Apache non dovrebbe creare problemi, deve solo essere correttamente impostato in modo tale da gestire connessioni che possono durare anche ore.
    Sìsì, io mi riferivo chiaramente ad uno script molto elementare, senza scaricamenti di immagini e cose varie.

    Io quello che faccio è: una volta scaricata tutta la pagina e tutti gli alambicchi vari, apro una nuova connessione per scaricare gli "eventi".
    Mi chiedo però come si faccia a fare sì che, una volta terminato il primo scaricamento degli eventi, al momento giusto il server sia in grado di riattivare la stessa connessione di prima per permettere al client di scaricare nuovi dati.
    Attualmente, il client è costretto (?) a continuare a riaprire la connessione circa ogni 3 secondi, perché una volta letto il file degli eventi il server gli chiude le porte in faccia.

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •