[PHP] Come gestire gli utenti online

Discussione in 'PHP' iniziata da Marcolino92, 28 Maggio 2019.

Tag (etichette):
  1. Marcolino92

    Marcolino92 Nuovo Utente

    Registrato:
    6 Novembre 2012
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ciao, come da titolo mi trovo in difficoltà anche con questo, ho cercato di risolvere da solo ma ho solo prelevato gli utenti quale la loro "Ultima attività", fosse inferiore a un lasso di tempo prestabilito. Ma non credo sia questa la giusta logica perche ovviamente in quel caso il pallino online viene mostrato anche se l'utente ha chiuso il browser fino appunto al prossimo rinnovo o comunque scadenza del tempo stabilito.

    Credo bisogna giocare con le sessioni?
    Utilizzo Codeigniter con Benedmuns Libreria per la gestione utente
     
  2. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    921
    Mi Piace Ricevuti:
    53
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Con socket.io risolvi la gestione della contemporaneità e la gestione live degli utenti in sessione...
    In alternativa fai un polling con ajax aggiornando la permanenza agli ultimi x secondi....
     
  3. Marcolino92

    Marcolino92 Nuovo Utente

    Registrato:
    6 Novembre 2012
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ciao, grazie per la tua risposta, potresti farmi un esempio veloce riguardo il polling con ajax?
    Si tratta di una normale query che prende gli ultimi collegati in sessione ma che tramite ajax li mette a scaletta aggiornandosi automaticamente?
     
  4. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    921
    Mi Piace Ricevuti:
    53
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Codice:
    var interval=setInterval(function(){
           remoteCallAjax();
    },4000);
    
     
  5. Marcolino92

    Marcolino92 Nuovo Utente

    Registrato:
    6 Novembre 2012
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Qualcosa del genere è giusto?

    Codice:
    <script>
            setInterval(function(){
                $.ajax({
                    url: 'URL#####',
                    dataType: 'jsonp',
                    success: function(result){
                        alert(result);
                    },
                    error: function(result){
                        alert(result);
                    }
                });
            }, 4000);
        </script>
    Dove in url inserisco il controller che esegue la query?
     
  6. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    921
    Mi Piace Ricevuti:
    53
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
  7. Marcolino92

    Marcolino92 Nuovo Utente

    Registrato:
    6 Novembre 2012
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Mi chiedevo se in termini di utilizzo e buona norma di codice, sia consono usarlo, oppure crea qualche problema riguardo la navigazione, rallentamenti, non so qualcosa di simile ?
     
  8. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    921
    Mi Piace Ricevuti:
    53
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Partendo dalla tua logica no!
    Le operazioni sul DB le fa il model, il controller appunto controlla e organizza i dati, la view si limita a visualizzarli...
    Il long polling "non si usa" quasi più, si cerca di sfruttare altre metodologie....
    socket, coap, mqtt etc....
     
  9. Marcolino92

    Marcolino92 Nuovo Utente

    Registrato:
    6 Novembre 2012
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Penso di evitare di utilizzarlo allora, comunque ora che realizzo forse non mi ero spiegato molto bene sul mio problema, perche forse tu hai capito che volevo semplicemente aggiornare la visualizzazione di ogni nuova entrata/utente collegato.

    Invece avrei proprio bisogno di capire come mostrare correttamente quando un utente è online (mostrando il classico pallino) ma che sopratutto scompaia quando esce dalla sessione. Quello che invece sono riuscito semplicemente a fare è mostrare l'online( quindi il pallino) ogni qualvolta l'utente si collega dicendo banalmente di mostrarmi i risultati dove il campo last_actvity è piu recente, quindi un utente rimane online (pallino verde) anche se è uscito dal sito da 1 ora.
     
  10. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    921
    Mi Piace Ricevuti:
    53
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    No no, era chiaro... non a caso ti ho detto di usare un long polling...

    Mi pare di aver risposto al primo intervento...
     
Sto caricando...

Condividi questa Pagina