• User

    Sessioni e controllo utenti

    Salve a tutti!
    Sono un paio di anni che non entro in un forum, spero di aver almeno azzeccato la sezione giusta xD.. Ho un grandissimo dilemma..

    Sto realizzando una chat in jQuery+AJAX+PHP, il suo funzionamento è molto semplice.
    Essenzialmente la pagina svolge 2 attività.

    Attività 1: l'utente scrive il messaggio -> Viene inviato tramite POST in ajax -> I dati via POST vengono presi da uno script PHP che ha il compito di "pulire" questi dati e inserirli in un database.

    Attività 2: Con un ciclo, il jquery+ajax controlla ogni tot millisecondi la presenza di nuovi messaggi sempre tramite uno script in PHP che va a pescare i dati dal database.

    Ed ecco al mio dilemma: dopo che un utente ha effettuato il login, come faccio a sapere quando esce/chiude la chat/si disconnette senza cliccare sul pulsante "Logout" oppure se è ancora online e presente in chat??

    La prima idea che mi è venuta è stata quella di aggiungere una 3 attività alla pagina che faccia in questo modo:

    Attività 3: ogni tot millisecondi effettua una richiesta tramite AJAX ad uno script PHP -> Lo script in php effettua un ping all'ip di tutti gli utenti che sono segnati in chat -> return con la lista degli indirizzi IP ancora online.

    Mi son reso conto quasi subito che questa idea non avrebbe funzionato, sia perchè avrebbe appesantito troppo la chat e il server, sia perchè se magari l'utente non è più in chat ma magari è ancora connesso ad internet, risulterebbe ancora online nonostante abbia chiuso la chat..

    Un altra idea è stata quella di creare un applicazione CGI (perl o python) che controlli in automatico le sessioni in modo da segnare online in chat le sessioni degli utenti ancora attive, e segnare offline le sessioni scadute.. Solo che temo di non sapere dove mettere mano, e non ho idea di dove/come il server salvi le sessioni. E in ogni caso il mio è un semplice hosting, non un server dedicato o un VPS, per cui i miei privilegi lato server non sono molto alti..

    Ho provato a cercare qualcosa su google, ma il problema è che non so nemmeno quali parole-chiave mettere. Qualcuno ha un'idea su come potrei fare??
    Grazie a tutti, e scusate se mi son spiegato da cani...

    p.s.: non so se questo possa servire, ma il mio piano di hoster offre script CGI in Perl e mi da l'accesso via SSH.


  • ModSenior

    Ciao BennyZZ,
    è un argomento trattato diverse volte in cui ho indicato qual'è la soluzione migliore fin'ora, l'ultimo topic sull'argomento è questo:
    http://www.giorgiotave.it/forum/php-mysql/175572-logout-alla-chiusura-del-browser.html


  • User

    @Thedarkita said:

    Ciao BennyZZ,
    è un argomento trattato diverse volte in cui ho indicato qual'è la soluzione migliore fin'ora, l'ultimo topic sull'argomento è questo:
    [...]

    Cavolo, perchè non ci ho pensato prima?? e dire che una cosa simile l'ho già implementata per i log, mi basta solo più aggiungere 1 controllo ed è fatta.. grazie 1000! 🙂