Salve a tutti, il mio problema riguarda una chat che sto creando, in particolare vorrei sapere se è possibile fare in modo che non appena un utente lascia la chat e dunque esce dalla pagina dove sta chattando venga eliminata la riga del database corrispondente a lui e comunicato all'interno della chat che l'utente si è disconnesso. Ho provato a usare le sessioni ma al massimo posso applicare tale funzione alla chiusura del browser e non della pagina e in ogni caso l'ultimo utente rimasto una volta uscito non verrebbe eliminato dal database, in quanto le richieste con jQuery alla pagina php che controlla l'esistenza delle sessioni non potrebbero più essere inviate, vengono inviate finché almeno un utente è collegato alla pagina. La chat non ha registrazione, ogni utente può accedere inserendo il suo username a una room o crearne una sua, la quale anch'essa dovrebbe essere eliminata quando non è più presente nessun utente. Dunque è una chat momentanea, cioè non deve memorizzare nulla se non finché qualcuno è collegato, e per questo mi serve eliminare i dati dal database ogni volta che un utente lascia la pagina, solamente che non ho idea di come fare.
L'unico modo sicuro è un timeout: se l'utente (o il suo PC) non compie alcuna azione (come inviare i messaggi o richiedere eventuali nuovi messaggi) per troppo tempo allora viene semplicemente disconnesso per inattività.
Però in alcune chat vedo che l'utente è come se venisse disconnesso solo quando esce dalla pagina ad esempio su http://sync-video.com appena un utente chiude la pagina viene comunicato agli altri utenti che si è disconnesso, dunque un modo dovrebbe esserci.
Quel servizio fa uso di WebSocket, ossia una connessione persistente. Quando la pagina viene chiusa la connessione viene chiusa anch'essa, segnalando l'uscita. Se però la connessione viene interrotta all'improvviso (per esempio staccando il cavo di rete o togliendo l'alimentazione al PC) il server non ha modo di capire che l'utente non c'è più, e viene disconnesso dopo un po' per inattività della connessione.
Su AlterVista però non è possibile fare uso dei WebSocket in quanto serve supporto lato server per questa tecnologia.
Su altervista carico pagine che una volta completate vengono caricate su un altro server dove probabilmente i WebSocket funzionano, comunque ho visto che per farli funzionare bisogna installare qualcosa, questo solo se si programma in locale con programmi tipo xammp? Se li carico su un server che ha i WebSocket non devo caricare nessun file specifico per farli funzionare a parte la pagina stessa con lo script?
Ultima modifica di sitodiprova00001111 : 05-11-2015 alle ore 15.52.41