[PHP] Come gestire gli utenti online

Marcolino92

Utente Attivo
6 Nov 2012
28
0
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
 
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....
 
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?
 
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?
 
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 ?
 
Mi chiedevo se in termini di utilizzo e buona norma di codice
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....
 
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.
 
perche forse tu hai capito che volevo semplicemente aggiornare la visualizzazione di ogni nuova entrata/utente collegato
No no, era chiaro... non a caso ti ho detto di usare un long polling...

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
Mi pare di aver risposto al primo intervento...
Con socket.io risolvi la gestione della contemporaneità e la gestione live degli utenti in sessione...
 

Discussioni simili