Non Logout postato il 19/11/2011 05:02:34 nel forum programmazione, gdrcd, open source, hosting
Ciao esperti.
Solitamente 990 persone su 1000 quando escono da un gdr lo fanno correttamente cliccando su esci, e qui tutto bene. Cosa succede o cosa dovrebbe succedere se questo non avviene?
Lo chiedo perchè la mia annotazione è abbastanza particolare, ho notato per puro caso che se un personaggio esce in maniera scorretta senza passare dalla pagina del logout, rimane presente a tempo indeterminato, non scompare mai a meno che io che sono nella stanza con lui non cambi stanza e poi torno in quella dove eravamo entrambi. In questo caso non lo trovo più e lo vedo uscire. Però attenzione, questo solo dopo un buon quarto d'ora dalla sua uscita scorretta, se faccio questa operazione pochi minuti dopo lui ancora non sparisce. E ovviamente se non la faccio anche dopo il bel quarto d'ora rimane sempre presente apparente.
Scusate l'astrusità, son le 5. La domanda è, perchè il personaggio che chiuda la finestra del browser o magari perde la connessione di casa sua, dunque non fa il logout corretto, rimane sempre presente? Non riesco a risolverlo, e ancora di più mi lascia perplesso il fatto che cambiando stanza e tornando poi alla mappa questo finalmente esca, ma solo appunto dopo un bel pò!
Può darsi sia normale, ma ditemelo voi
Pagine → 1
19/11/2011 08:49:41
Prima controdomanda, che OS stai usando perchè ognuno di quelli presenti gestisce in maniera diversa la procedura di logout e sapere quale usi aiuterebbe a capire come risponderti meglio
19/11/2011 12:31:32
si, sto usando l'extreme
19/11/2011 13:42:47
GDRCD3 aggiorna la lista dei presenti ogni volte che un utente si sposta da una stanza a un'altra o comunque aggiorna la pagina di una stanza/mappa. Secondo questa logica:
_Tra gli utenti presenti, quelli che non hanno fatto un refresh di pagina da 6 minuti vengono messi il lista come Usciti
_Tra gi utenti presenti o usciti, quelli che non hanno fatto un refresh di pagina da 12 minuti vengono completamente tolti dalla lista.
Quindi a meno che tu non abbia cambiato il contenuto della funzione cambiastanza() (nel file main.php) togliendo le ultime due query, il sistema dovrebbe ancora funzionare così, sbattendo fuori i pg che fanno un logout anomalo dopo 6 minuti.
19/11/2011 14:09:09
19/11/2011 15:26:30
Uhm...evidentemente io ho una versione successiva o precedente rispetto a quella che hai tu. La mia pagina include direttamente la funziona cambiastanza, la tua invece la richiada da un file incluso. Cosa c'è nel file /inc/cambiastanza.php?
19/11/2011 16:26:16
19/11/2011 20:01:19 e modificato da leoblacksoul il 19/11/2011 20:06:13
è proprio per questo che Faber diceva che l'implemetazione di questa cosa in GDRCD3 lascia a desiderare.
Io ho risolto questo problema facendo eseguire quella query non solo allo spostamento da una zona a un altra, ma anche a tutte le singole visualizzazioni di qualsiasi pagina del GDR, inclusi anche i contatti con il server per trovare i nuovi messaggi di chat.
In questo modo la lista rimane aggiornata finchè c'è anche un solo utente che fa qualcosa sul sito. Se ci sono utenti che non fanno niente (neanche stare fermi in chat) allora la lista non sarà aggiornata, ma nel momento stesso in cui qualcuno fa qualcosa (anche aprire la lista stessa!) la lista si aggiorna.
Quindi se riuscissi a implementare una cosa del genere la sincronia sarebbe molto migliore. Un modo semplice, e forse un po' poco elegante ma completamente in linea con la logica di GDRCD3 sarebbe spostare quelle due query da lì e metterle dentro al file /inc/open2.php subito dopo l'apertura della connessione con il database.
Ci sono sempre e comunque quei 6 minuti di timeout...ma quella non è una cosa che è risolvibile.
6 e 12 non sono tempi troppo lunghi. Se li accorci troppo rischi che gli utenti vengano sbattuti fuori perchè sono andati un attimo in bagno o a controllare che la torta non bruciasse XD
19/11/2011 20:31:38
20/11/2011 01:14:41
no devi proprio spostare le query. includere il file sortirebbe solo l'effetto di un blocco totale del GDR per un tentativo di definire due volte la stessa funzione
20/11/2011 01:59:23
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Whispers of the Sword Coast: Darkhold é online su Whispers of the Sword Coast
RAID Shadow Legends: Aggiornamento 11.00.0!
War Thunder → Aviazione, veicoli corazzati e flotte militari della seconda guerra mondiale. Parteciperai a tutte le principali battaglie!
Hero Wars: Evento PvP cross-server "Area di Conquista"
Intervista alla gestione di Fabula Arcana il primo play by chat ispirato al mondo di Daggerheart!
wotsc si è accreditato come gestore di Whispers of the Sword Coast
I dati del generatore di rank sono stati aggiornati!
RAID Shadow Legends → Plasma i tuoi eroi fino a farli diventare vere e proprie armi viventi e assembla i più epici gruppi d'assalto mai visti finora!
New Orleans: I Regali di babbo Grinch - I Giochini
Storie di Agarthi: La Vittoria della Notte
desmondste ha recensito The Coven
Black Sails Chronicles: OFF - Quest della Settimana
New Orleans → La Città dai Mille Volti: Crime, Feste, Mistero, Voodoo, Natura Incontaminata, Fama, Grattacieli, Luci Splendenti e Ombre Profonde.
The Coven: Giorno 9 del Coven-dario dell'avvento!
The Line: Ogni presenza, conta.
faxnir ha aperto una nuova discussione: Il crepuscolo delle chiavi - Gdr Tema Kingodm Hearts
Feudera: DEVBLOG #3 - Dettagli aggiornamento 0.49.5(1 di 2)
Raja Dunia → Tra verità divine e menzogne eterne, la tua anima è la chiave. Scopri Raja Dunia, e riscrivi il fato del Continente con armi e magia, fede o eresia.
