Seite 8 von 8

Verfasst: 16.07.2005 12:23
von pogi02
Hallo!

Hab da gestern noch etwas rumgebastelt und es funkt.

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.

Ich kann auch nur mit localhost verbinden, wenn ich meine IP eingebe findet der Browser den Server nicht.

Die Verbindung bleibt immer bestehen also so ne Art: Keep-Alive

Verfasst: 18.07.2005 02:40
von Justy
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

Verfasst: 18.07.2005 14:20
von pogi02
Das weiss ich!


Das ist ein Streaming Chat, doch ich habe keine Ahnung wie das mit PB realisiert werden soll ^^


Es gibt schon genügent solche Chats (fast jeder grosse chat arbeitet so) schau mal auf www.sms.at oder so die verwenden eine Chatsoftware von Cyberworkers (http://www.cyberworkers.at/) dieser wurde soweit ich weiß mit C++ Programmiert.

Es gibt auch noch viele viele andere die mit Java (nicht Javascript) arbeiten. Dazu braucht der Client keinerlei Plugins, nur der Server braucht das Java Packet das gratis zum download angeboten wird. (www.chat-planet.at) Diese Comm verwendet einen Java Chat die Software stammt von (http://3kx.net/)

Nunja ich weiss ja ein wenig wie solch ein Server Funktioniert nur das Problem ist das Streamen und das nacheinfügen der Nachrichten

Verfasst: 18.07.2005 16:31
von FloHimself
Justy hat geschrieben: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)!


Eine Lösung bietet das XMLHttpRequest Object (auch als Ajax bekannt).
http://www.cevi.ch/buelach/ajax/chat.htm

Verfasst: 18.07.2005 19:48
von Leo
FloHimself hat geschrieben:
Justy hat geschrieben: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)!


Eine Lösung bietet das XMLHttpRequest Object (auch als Ajax bekannt).
http://www.cevi.ch/buelach/ajax/chat.htm
Hey, das wollt ich hier gerade posten als ich den Thread gelesen hab. :D
Ajax steht für Asynchronus Java Script and XML. Man kann damit im Hintergrund HTTP Requests an einen Server senden ohne dass sich die Seite neulädt. Damit lässt sich leicht ein Chat oder sonst irgendwas interaktives schreiben. Ein paar Beispiele für Ajax kann man auf http://ajax.adria-net.de finden. Es gibt auch schon einen #ajax.de Channel aufm quakenet. :allright:

Verfasst: 18.07.2005 20:44
von pogi02
lol

schön und gut nur weiss einer wie das funktioniert??

^^ wäre ja auch vorteilhaft

Verfasst: 19.07.2005 00:54
von FloHimself
pogi02 hat geschrieben:lol
Auch lol!
pogi02 hat geschrieben:schön und gut nur weiss einer wie das funktioniert??
Technisch? Oder wie du es für deine Zwecke nutzen kannst?
pogi02 hat geschrieben:^^ wäre ja auch vorteilhaft
Das ist es bestimmt! http://www.google.de ist dein Freund.

Verfasst: 19.07.2005 12:56
von Leo
pogi02 hat geschrieben:lol

schön und gut nur weiss einer wie das funktioniert??

^^ wäre ja auch vorteilhaft
Komm doch einfach im quakenet auf #ajax.de :P