Hi!
pogi02 hat geschrieben:Der Browser verbindet mit dem Server, bekommt die erste Nachricht und ich kann sogar eine Nachricht senden doch das komische ist nur, er überschreibt die Nachricht immer und setzt sie nicht in eine neue Zeile.
Du hast soeben das grundsätzliche Problem dieser Technik herausgefunden:
Du musst immer die ganze Seite neu schicken, wenn eine neue Zeile kommt. Das wird mit der Zeit aber ziemlich groß und ist daher nicht geeignet für einen Chat (der ziemlich in Echtzeit aktualisert werden soll)!
Was anderes:
Der Chat des Portals von ORF (Österreichischer Rundfunk) fügt immer eine Zeile nach der anderen OHNE Reload hinzu. Dummerweise muss man sich registrieren um in den Chat zu kommen. Ich werde versuchen es so zu erklären:
Die Seite besteht aus mehreren Frames:
Code: Alles auswählen
<frameset rows="75,*,40,0" border="0" frameborder="no" framespacing="0">
<frame name="Exit" src="http://chat.orf.at/oe3/skin?name=chatheader" scrolling="no" noresize>
<frameset cols="30,*" border=0 frameborder="no" framespacing="0">
<frame name="advertisement" src="http://chat.orf.at/oe3/skin?name=chatleftframe" scrolling="no" noresize>
<frame name="messages" src="http://chat.orf.at:1976/MESSAGES">
</frameset>
<frame name="Input" src="http://chat.orf.at:1976/INPUT" scrolling="no" noresize>
<frame name="dummy" src="http://chat.orf.at:1976/DUMMY" scrolling="no" noresize>
</frameset>
Wie ihr seht, sind die Ziele für die aktualisierenen Frames keine normalen html-Seiten sondern irgendein anderer Server der auf dem Port 1976 sitzt.
Im unteren Frame ist ein Input-Textfeld...
Code: Alles auswählen
<form name="f" method="get" action="http://chat.orf.at:1976/SEND" onSubmit="return clear_input(this);" target="dummy">
...das seine Daten direkt auf den Server sendet.
Die Verbindung ist keep-alive, da Firefox die ganze Zeit das Ladesymbol zeigt.
Der Quellcode des Hauptframes lässt sich übrigens nicht anzeigen, daher habe ich keine Ahnung wie dieses System realisiert wurde! Es werden keine Plugins (Java, Flash) verwendet oder gestartet.
Ich hoffe ein wenig geholfen zu haben!
mfg. Justy