Chatserver schreiben in PB?

Für allgemeine Fragen zur Programmierung mit PureBasic.
pogi02
Beiträge: 131
Registriert: 30.10.2004 00:52
Wohnort: Österreich
Kontaktdaten:

Beitrag 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
MfG pogi02

- www.apware.net
Aktuelles Projekt:
-
Benutzeravatar
Justy
Beiträge: 131
Registriert: 10.09.2004 13:31
Wohnort: Feldbach / Steiermark / Österreich
Kontaktdaten:

Beitrag 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
Am Anfang erschuf der Mensch Gott.
Friedrich Nietzsche
pogi02
Beiträge: 131
Registriert: 30.10.2004 00:52
Wohnort: Österreich
Kontaktdaten:

Beitrag 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
MfG pogi02

- www.apware.net
Aktuelles Projekt:
-
FloHimself
Beiträge: 338
Registriert: 05.09.2004 18:47

Beitrag 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
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag 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:
pogi02
Beiträge: 131
Registriert: 30.10.2004 00:52
Wohnort: Österreich
Kontaktdaten:

Beitrag von pogi02 »

lol

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

^^ wäre ja auch vorteilhaft
MfG pogi02

- www.apware.net
Aktuelles Projekt:
-
FloHimself
Beiträge: 338
Registriert: 05.09.2004 18:47

Beitrag 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.
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag 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
Antworten