Mostra singolo utente online

Majinbu

Utente Attivo
31 Ago 2009
140
0
0
Salerno
www.zazoom.it
Ciao a tutti...
In riferimento a questo articolo volevo chiedere aiuto per far qualcosa del genere e/o forse più semplice.
Creo un application dinamica al login dell'utente che ha come valore l'username stesso : <%application (Recordset("username"))= session("MM_Username").
Conseguete risultato:in qualsiasi pagina voglia, filtrando con un semplice recordset l'application = riga username nel db, verifico se l'utente è connesso e mostro riga "Utente online."

ADESSO...Per non mettermi davanti pc e aspettare che il server si riavvi (quindi che l'utente passi offline:incazz2:) come asp faccio a modificare global.asa ( se si puo e se è questa la soluzione) e dirgli che allo scadere della Sub Session_OnEnd dove session("es pippo") corrisponde ad application("es pippo") deve reimpostare o resettare quella e solo quella application.(Non ho trovato niete riguardo il settaggio del time per le application...tipo come per le sessioni...non so se si puo fare,ma magari, perchè sarebbe la suluzione più semplice)
Spero di essere stato chiaro.
Qualsiasi altro suggerimento per mostrare se un singolo utente è online
o meno è ben accetto :).(ho pensato a inserimenti e letture su time ecc...vorrei evitare visto che le mie pagine hanno già diversi command)
Grazie.
 
Ultima modifica:

Majinbu

Utente Attivo
31 Ago 2009
140
0
0
Salerno
www.zazoom.it
Esatto :) : quando utente abbandona sito, devo cancellare variabile applicazione che contiene il suo username ( stesso valore del session("username") ).
PS: a maggior chiarezza...quello che devo fare è :
Come su questo formun... visualizzo il tuo Profilo publico e tra le informazioni visualizzo se sei online o meno (se sei loggato o meno)

Non sono mai riuscito a trovare informazioni utili a riguardo. Per questo cerco di risolvere con ciò che le mie conoscenze mi suggeriscono.

Spero di essere stato più chiaro.Grazie.
 

@web

Nuovo Utente
21 Nov 2007
14
0
0
Segrate
www.my-vshop.com
Ti metto il link al mio blog, dove ho appena inserito un articolo che risolve un problema del genere, cioè rilevare quando gli utenti escono dal sito, anche se chiudono il browser oppure passano ad un altro sito senza il "logout"...

Adattandolo alle tue esigenze, dovrebbe servirti.

Blog di Alessio_1976

Buona giornata!
Ale
 

lukeonweb

Utente Attivo
5 Mar 2003
5.180
9
38
41
Napoli
www.lucaruggiero.it
Alessio, ti saremmo grati se spiegassi la soluzione invece di portarti traffico. Grazie.

A prescindere dalla soluzione di Alessio che contempla AJAX, alla fine quel che devi fare è scegliere come memorizzare tutti i nick collegati, ad esempio:

Application("nick") = Application("nick") & ";"

In questo modo hai tutti i nick in fila, divisi da punto e virgola:

pippo;pluto;paperino

Quando un utente esce, nel Global.asa devi andare a cancellarlo, quindi sostituire con "vuoto" la session che ti ha appena abbandonato, quindi:

Application("nick") = Replace(Application("nick"), Session("nick") & ";", "")

o qualcosa del genere... ad occhio gli esempi potrebbero essere bacati, ma il senso è questo.
 

Majinbu

Utente Attivo
31 Ago 2009
140
0
0
Salerno
www.zazoom.it
Grazie per la disponiilatà luke e alessio.
Luke ho fatto diverse prove con i tuoi consigli e utilizzando il tuo script dell'articolo paro paro,:eek: aggiungendo semplicemete una funziona asp che mi controlla se il "nick" è contenuto nell'Application.OK è semplicissimo e funziona....Ma rimane sempre lo stesso problema di fondo.
L'Application("nomi") si aggiorna solo dopo circa 10min dalla chiusura di TUTTE le sessioni. Se invece, creando 2 sessioni, chiudo una delle due rimanendone attiva solo una, l'application mi restituisce sempre tutte e due le sessioni attive(tutti e due gli utenti online), ho testato 30min senza risultato!

A prescindere se possa riuscire a risolvere o meno, grazie.
 

lukeonweb

Utente Attivo
5 Mar 2003
5.180
9
38
41
Napoli
www.lucaruggiero.it
Eh, lo so, è un problema delle Application: Microsoft non si è sforzata a fare qualcosa per risolverlo - come si pensava - da quando ha deciso di creare quello schifo di .NET :)

Comunque è strano, dato che togliendo una porzione di una stringa da una stringa, quella stessa stringa dovrebbe modificarsi a prescindere dalla "lentezza" di IIS :eek:

Mi posti il link dell'articolo a cui ti riferisci?
 

Majinbu

Utente Attivo
31 Ago 2009
140
0
0
Salerno
www.zazoom.it
Ciao...
Ecco l'articolo...da un bel pò (forse un anno:crying:)che saltuariamente cerco di di capire percè sta asp di application ha restrizioni così evidenti. Ho sempre pensanto che bastasse poter settare il timeout(come per le sessioni) per poter far tante cosine in più.

Riguardo allo script di alessio (che funziona alla perfezione...complimenti per la soluzione)ma permettimi di dire (almeno nel mio caso) che forse è un pò troppo macchinoso.Per poterla utilizzare dovrei inserire session.id in db e filtrarla....equivale a inserire Time() in db e in pagina fare sottrazione, per esempio se <= 1"min" ...utente online
se => 1...utente...prime soluzioni a cui avevo pensato,ma ho postato che vorrei evitare inserimenti &C. ;)
CMQ Grazie per la disponibilita . Ogni consiglio e critica è assolutamente ben accetta.
 

Majinbu

Utente Attivo
31 Ago 2009
140
0
0
Salerno
www.zazoom.it
Porco asp...finalmente ho capito e risolto
C'è un abnorme problemone di fondo :fuck:
Per mostrare utenti realmente online con global.asa bastarebbe impostare : Sub Session_OnStart
Session.Timeout = 1 (min)...
ed ogni minuto la sessione termina e l'application viene aggiornata...ottimo...a patto però, che non si utilizzi nessuna sessione per far navigare un utente :gun:. (Chiaro)Soluzione assurda e inapplicabile (almeno per me)...ma chiaramente dipende da quello che si vuol fare ;).
Cmq ho dato sguardo più approfondito a soluzione di alessio, che con poche modifiche ho adattato a quello che volevo :fonzie:
Grazie per i consigli :byebye: