Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: chi è online?

  1. #1

    chi è online?

    salve, devo fare una applicazione che mi consente di sapere chi è online in un determinato momento...
    ho visto in giro che questo si puo fare assumendo pero un tempo medio di visita all'interno della pagina e distruggendo quindi la sessione nel caso in cui si supera questo tempo..
    ma, a me serve sapere il momento preciso (10 secondi- 1 minuto max di tolleranza ) di quando l'utente abbandona il sito.
    che soluzione mi consigliate?
    saluti
    danilo

  2. #2
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    "distruggi" la sessione dopo 10 secondi di inattività, dov'è il problema?

  3. #3
    e come catturo l'inattività?

  4. #4
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    in ogni pagina aggiorni una variabile di sessione legata all'utente con "time()" per esempio, e ad ogni pagina controlli che quella variabile di sessione sia > 10, se lo è cancelli tutta la variabile di sessione dell'utente

  5. #5
    La soluzione e' quella dettata da Ranma2, tecnicamente minore e' il valore di tolleraza maggiore e' la
    precisione. 10 secondi credo sia troppo basso 300 secondi e' un valore accettabile. La scelta del
    valore di tolleranza va fatta in base alla mole di utenza del sito web.

  6. #6
    si ma se l'utente sta 10 ore in una pagina io non voglio che gli venga cancellata la sessione...voglio che resti attivo...la sessione gli si deve cancellare solo se esce dal sito (chiusura browser, si disconnette etc etc)

  7. #7
    Guarda che gli utenti non "stanno" sul tuo sito, richiedono una pagina e il server la invia al client, fine. Praticamente tutti i forum si limitano a segnare l'orario della tua ultima richiesta e a considerarti utente attivo per un range limitato di tempo successivo alla stessa (cinque minuti, quindici, dipende): questa è una maniera ragionevole e poco dispendiosa in termini di risorse.

    Se ci tieni proprio potresti inviare un segno di vita al server tramite javascript ogni tot secondi...
    sopra la panca la capra campa, sotto la panca la suddetta decede (soffrendo).
    (il mio vero nome è davidino ^_^)

  8. #8
    come fa facebook nella sua chat a sapere gli utenti online?
    penso che l'unica soluzione sia inviare un segno di vita al server tramite javascript ogni tot secondi...
    boh..

  9. #9
    Ragazzi le soluzioni sono svariate.
    Esistono le sessioni, gli indirizzi IP oppure i COOKIE.

    Poi è possibile anche appoggiarsi al DATABASE.

    Pensandoci basterebbe salvare sul database ad ogni refresh di pagina fatta dall'utente una timestamp.

    Poi se si ha la possibilità di inserire un cron nel sistema basta creare uno script che ogni 30 secondi distrugge tutte le sessioni di autenticazione che per esempio non hanno il timestamp aggiornato da 5 minuti.

    Poi occorre considerare anche quanto tempo dura una sessione di autenticazione. La sua durata è fondamentale per determinare il tempo di attesa max.

    Comunque si potrebbe anche utilizzare AJAX per fare interrogazioni asincrone sul server per verificare la eventuale attività dell'utente connesso oppure ad ogni accesso da parte di qualsiasi utenti si avvia una script di controllo. Quest'ultima soluzione è un pochino costosa perchè dipende dal numero di utenti presenti nel sistema.

    Ripeto dipende molto anche dagli strumenti che si hanno.

    In risposta alla tua domanda su come fa facebook è chiaro che FB avendo server dedicati (cluster) hanno procedure offline che girano in autonomia sul server come se fossere delle richieste CRON.
    Spero di essere stato chiaro.
    Vincenzo Miele

  10. #10
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Originariamente inviato da vinmie
    Ragazzi le soluzioni sono svariate.
    Esistono le sessioni, gli indirizzi IP oppure i COOKIE.

    Poi è possibile anche appoggiarsi al DATABASE.

    Pensandoci basterebbe salvare sul database ad ogni refresh di pagina fatta dall'utente una timestamp.
    ma perché mai rompere le scatole al database quando php ci dona le sessioni?

    Originariamente inviato da vinmie
    Poi se si ha la possibilità di inserire un cron nel sistema basta creare uno script che ogni 30 secondi distrugge tutte le sessioni di autenticazione che per esempio non hanno il timestamp aggiornato da 5 minuti.
    Fai il controllo con le sessioni e distruggi quelle più vecchie di un dato timestamp, perché complicarsi la vita?
    Originariamente inviato da vinmie

    In risposta alla tua domanda su come fa facebook è chiaro che FB avendo server dedicati (cluster) hanno procedure offline che girano in autonomia sul server come se fossere delle richieste CRON.
    Spero di essere stato chiaro.
    Sbagli, facebook utilizza ajax per aggiornare utenti in chat e notifiche. Fa richieste al server continue ogni 55 secondi che cadono appena cambia qualcosa e allo scadere si autorinnovano. Provare per credere

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.