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.