Possiedo un'applicazione PHP con funzionalità di chat che utilizza nodejs
e socket.io
. Quello che ora devo fare è registrare l'utente se l'utente è inattivo per più di 15 minuti.Socket.io verifica l'inattività a parte l'heartbeat dal client
Le sessioni sono condivise tra l'applicazione PHP e il server Nodejs
. Quindi il server nodejs
sa quando un utente ha effettuato l'ultimo accesso o quando la sua ultima attività è stata.
Sto pensando di inviare un comando logoff
al client socket.io e sarebbe davvero facile se potessi distinguere tra l'heartbeat e un messaggio da un client.
Poiché l'applicazione PHP saprebbe solo dell'attività di un utente su una pagina di ricarica o di navigazione, l'utente potrebbe comunque chattare mentre è inattivo e l'applicazione PHP non saprà se l'utente sta chattando. Quindi il controllo dell'ultima attività di un utente dalla sessione non funzionerà.
Quindi la domanda principale è, posso identificare un client che ha inviato solo heartbeat per più di 15 minuti (nessuna emette)?
L'operazione corretta non è aggiornare la sessione in base all'attività di chat e se non è stata eseguita alcuna attività per 15 minuti, scollegarsi al prossimo heartbeat? – mekwall