L'evento Session_End non si attiva quando il browser è chiuso, si attiva quando il server non ha ricevuto una richiesta dall'utente in una specifica sessione temporale (per impostazione predefinita 20 minuti). Ciò significa che se usi Session_End per rimuovere gli utenti, rimarranno nella chat per 20 minuti dopo aver chiuso il browser.
Suggerisco di mantenere l'ora dell'ultima richiesta nell'oggetto utente. In questo modo puoi determinare quanto è attivo l'utente e quanto è probabile che l'utente abbia lasciato la chat. Ad esempio, puoi visualizzare qualsiasi utente che non ha fatto nulla per due minuti come inattivo.
È inoltre possibile consentire all'applicazione di chat di eseguire periodicamente il polling del server (se non lo si fa già). Ciò aggiornerebbe l'ultima richiesta di tempo nell'oggetto e manterrà l'utente attivo fintanto che la finestra di chat è aperta.
È possibile utilizzare l'evento onunload nel browser per inviare una richiesta di disconnessione al server quando l'utente lascia la pagina. Questo ovviamente funziona solo se l'utente ha ancora la connettività di rete. L'evento onunload viene attivato anche quando si ricarica la pagina, quindi è necessario tenere traccia del motivo per cui l'evento viene attivato per utilizzarlo.
Nella mia tabella hash contiene chiave, che è anche Session ["UserID"] contiene, Questa sessione viene utilizzata per passare il parametro usrid di Logout (stringa usrid), in evento Session_End, Se avete qualche idea allora per favore aiutatemi ... –
Non capisco la tua domanda. Scusate. – MartinHN