Problema con le chat di gdrcd extreme su [RISOLTO] postato il 26/03/2014 13:02:10 nel forum programmazione, gdrcd e open source e modificato da png random il 27/03/2014 22:50:45
Ciao a tutti! E' bello tornare a bazzicare da queste parti, un po' meno bello farlo per chiedere aiuto per un problema...
Mi sono ritrovato a dare una mano ad alcuni amici con un progetto dopo anni che non mi occupo più di land online, e mi sono imbattuto in una problematica che non riesco a risolvere.
Molto semplicemente, le chat non si aggiornano automaticamente.
Ho provato a dire a testo.php di ricaricarsi automaticamente ogni dieci secondi tramite META, ma non pare aver sortito effetto.
Fatto questo, ho provato ad alleggerire il carico sul traffico dati cambiando il bersaglio del tasto aggiorna manuale dall'intero frame "palestra" al solo frame "chattesto".
A questo punto, ho perso completamente traccia di cosa stesse succedendo: prima al posto della chat è apparsa una pagina nera, poi all'invio di un'azione ha cominciato a funzionare correttamente in fatto di aggiornamento, anche se apparentemente senza CSS, ma visualizzando solo le azioni inviate da quel momento in avanti.
Qualcuno ha qualche idea di come si possa risolvere questo problema, o è una cosa capitata solo su quel sito? (metterei il link, ma sono ancora in alpha e mi hanno chiesto di non pubblicarlo)
Pagine → 1
26/03/2014 21:46:52 e modificato da blancks il 26/03/2014 21:47:38
Le chat di gdrcd extreme sono quelle derivate dalla versione 3.0 e sono l'aborto logico più inconcepibile che la mente di un essere umano possa mai aver partorito.
Detto questo, se ho ben capito il problema, dovresti risolverlo azzerndo il valore di sessione che mantiene in memoria l'id dell'ultimo messaggio visualizzato in chat.
Il motivo è che la chat di gdrcd extreme in fase di inizializzazione crea l'intestazione html con i richiami al css e tutto, quando l'id è maggiore di zero si occupa di scrivere i messaggi nella formattazione html ancora in corso (e che non verrà mai chiusa), di conseguenza se non gli si dice ogni volta che si entra in una chat -o si aggiorna la pagina principale della stessa- di azzerare quel valore dovresti incontrare il bug.
il file col frameset della chat è sicuramente il posto più appropriato per fare questo reset, credo si chiamasse palestra.php
In ogni caso, se hai possibilità, ti consiglio di utilizzare l'ultima versione aggiornata di GDRCD https://github.com/GDRCD/GDRCD/archive/master.zip e lavorare su quella, ne guadagnerai anche in fatto di sicurezza.
27/03/2014 10:06:15 e modificato da png random il 27/03/2014 22:52:55
Grazie mille per la risposta!
Purtroppo però non era la soluzione al problema...
E, sempre purtroppo, non posso cambiare gdrcd perchè sono entrato a progetto già iniziato (onestamente quasi completato, sono più un problem-solver che un programmatore praticamente) e non avrei il tempo di riprogrammare tutte le personalizzazioni che hanno fatto quelli che ci hanno lavorato prima di me.
Comunque, nuovi aggiornamenti:
-palestra.php era già impostato per azzerare il valore di ID dell'ultimo post
-refresh.php è il file che aggiorna i contenuti della chat ed è impostato in META per aggiornarsi ogni 8 secondi
-testo.php è dove compare la chat, ma in se controlla solo se l'utente è connesso correttamente
-input.php è dove si scrive, ed interagisce solo con se stesso ed il DB
Ho fatto un paio di tentativi abbastanza grezzi per capire dove sta il problema, e credo di essere arrivato ad una svolta...circa, perchè non so dove mettere mano ne quali siano le dinamiche esatte che vengono tirate in campo, per quanto mi riguarda è completamente privo di senso:
-caricando palestra carica ovviamente anche i suoi frame refresh, testo e input
-testo viene caricato con la corretta formattazione
-input non presenta problemi di sorta
-refresh si carica correttamente, ma per motivi non meglio precisati non effettua l'aggiornamento automatico ogni otto secondi
-se faccio aggiornare manualmente input, non succede nulla
-se faccio aggiornare manualmente palestra, carica gli inserimenti più recenti, ma perde quelli precedenti
-se faccio aggiornare manualmente refresh, carica le entrate corrette senza perdere le precedenti, ma continua a non autoaggiornarsi
-se faccio aggiornare manualmente testo (attenzione: qui si fa assurda) perde i css, mostra solo le azioni tra l'ultima e il momento attuale e (rullo di tamburi) refresh inizia ad autoaggiornarsi ogni otto secondi
Ora, io mi ritengo per lo meno in grado di fare collegamenti logici, ma onestamente mi sfugge la logica di tutto ciò, visto che testo.php non contiene comandi che influenzino refresh.php al suo caricamento...
Qualcuno ha qualche idea? Perchè io onestamente sono a secco...
PROBLEMA RISOLTO
Cioè, all'incirca. Ho semplicemente rinunciato a far funzionare il meta ed ho messo un aggiornamento in JS... con quello funziona correttamente al primo colpo. Per aiutare chi avesse problemi simili, ecco la soluzione, da mettere dentro la head di refresh.php
29/04/2014 21:03:11 e modificato da animanera13 il 29/04/2014 21:38:31
ti ringrazio hai risolto un problema anche a me, ho usato la tua soluzione.
EDIT: Domanda ma questo tipo di aggiornamento forzato crea per caso problemi con il server? spiego il problema ho inserito quello script, ho testato per capire come funziona...e ok funzionava, aggiornava e pure alla grande... dopo circa una decina di minuti di test a 2 in chat pagina bianca esco e faccio per rientrare e:
DATABASE TEMPORANEAMENTE NON FUNZIONANTE!
Il database è probabilmente troppo sollecitato, si prega di riprovare più tardi.
Sono momentaneamente impossibili anche l'iscrizione ed il recupero della password.
sapete darmi spiegazioni?
30/04/2014 14:24:54 e modificato da leoblacksoul il 30/04/2014 14:30:00
Il codice non da problemi con il server.
MA se il tuo hosting ti pone un limite di query orarie è possibile che tu abbia alzato troppo la frequenza di refresh consumando la query che avevi a disposizione.
30/04/2014 17:38:22
30/04/2014 18:12:00
Non centra nulla...dipende da che tipo di database hai attivato su altervista. Banda e spazio non hanno niente a che vedere.
Se è bloccato anche con il vecchio refresh a maggior ragione, è ancora più probabile che hai sforato il massimo di query orarie/giornaliere che ti è concesso su altervista.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
I dati del generatore di rank sono stati aggiornati!