ciao,
circa il refresh posso dirti che ho provato 2 tecniche finora:
-la prima di affidare il refresh ad un frame invisibile
-la seconda di far aggiornare la pagina stessa con ajax (non è difficilissimo adeguare uno dei tanti script in giro)
la seconda via dovrebbe essere più veloce, eppure stranamente trovo il refresh più efficace col primo sistema;
il difficile sta nel configurare la chat in maniera che le richieste di aggiornamento/scrittura non si accavallino; in particolare ciò che può accadere è che la variabile confrontata per dire alla query da che punto in poi deve prendere i messaggi (di solito l'ID del messaggio) non si aggiorni senza essere relativamente sicuri che i messaggi relativi vengano scritti nel poi effettivamente nel frame della chat