Il server di per sé non può "sapere" che l'utente ha chiuso la finestra (o gli si è spento il PC, o si è staccato il cavo di rete .....).Originariamente inviato da Ottavioinfo
Il punto è che il metodo sessionCreated viene invocato correttamente ma il metodo sessionDestroyed non viene invocato.
Come mai?
HTTP è stateless, fai una request, ricevi una response. Dopodiché il server non può sapere più nulla finché non viene fatta un'altra request.
Le soluzioni? Aspettare il timeout della sessione, a quel punto sessionDestroyed lo ottieni. Ma dipende da cosa devi fare di preciso e il perché, potrebbe non andarti bene.
Oppure smanettare lato client con funzioni Javascript per ricevere un evento di chiusura e di conseguenza fare una piccola request speciale al server per dire "ehi, ho chiuso". Ma su questa soluzione ci sono di certo questioni di compatibilità tra i browser da valutare e su cui indagare.