PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Chat ohne meta oder javascript refresh



RambozoTheClown
27-08-2001, 09:36
Hallo zusammen,

hat irgend jemand eine Ahnung, wie ich einen Chat realisieren kann, der völlig ohne dieses nervige zweisekündige Geflackere beim meta oder javascript refresh auskommt? Bei einem 100 Hz Monitor ist das ja echt nicht zu sehen, bei 85 sieht dass aber schon ganz anders aus.
Das beste wäre, wenn nur refreshed wird, wenn neue Chatdaten hinzugekommen sind.

Danke, Ulf

robert09
27-08-2001, 13:28
Hallo Ulf !

Es passt hier vielleicht nicht in das PHP Forum, aber eine Javaapplet sollte Deine Zwecke erfüllen.

tschau,
Robert

RambozoTheClown
27-08-2001, 14:29
Nichts mit PHP möglich??? Ich muss also Java lernen???

Hans-Georg Normann
27-08-2001, 23:52
Hi Rambozo,

bin selbst Newbie, aber wenn ich das richtig sehe, wird PHP Code auf dem Server ausgeführt. Du kannst serverseitig zwar eine HP dynamisch erzeugen, aber sobald die an den Client geschickt wird, besteht heine Bindung mehr zwischen PHP-Script und der HP. Folgich muß die HP bereits den Code für den Refresh enthalten, egal in welcher Form, bzw. mit welchem PProgamm.

Ich hoffe, ich liege mit meiner Meinung nicht völlig daneben.

Hans

RambozoTheClown
28-08-2001, 09:00
Ja, ja das stimmt schon.
Es gibt doch aber zumindest mit Perl die Möglichkeit eine permamente Verbindung Server <-> Klient aufrechtzuerhalten - bis der Klient die Seiten halt verlässt, obwohl hierbei Netscape und MSIE mal wieder getrennt behandelt werden müssen. So oder ähnlich ist das ja auch bei Chatsystemen wie Fun Online oder anderen Framechats gelöst.
Gibt es so was nicht auch für PHP?

BitBoy
01-09-2001, 22:40
mir ist bis jetzt noch kein php chat untergekommen
auf perl Basis aber die sind sehr serverlastig...
ansonsten halt bloß java

Bit

lazyRebel
02-09-2001, 23:13
hallo!
ich bin zwar ziemlich neu in php, aber ich habs mir folgendermassen gedacht:


if (strlen($textaktuell) != filesize($dateiname))
{
$neutext = substr(fread($datei, filesize($dateiname)), strlen($textaktuell));
$textaktuell .= $neutext;
echo $neutext;
}

$textaktuell ist eine variable, in der der text des aktuellen chatfensters enthalten ist. wenn jemand etwas eingibt wird es in der datei $dateiname auf dem server gespeichert, die if-abfrage überprüft ob sich diese datei von der variable unterscheidet.
wenn dem so ist wird in die variable $neutext der text gespeichert, der neu dazugekommen ist. dieser wird dann zur variable $textaktuell zugefügt und ausgegeben.

ich denk, so sollts funktionieren, aber ich steh dabei vor einem problem: durch eine schleife wird der server lahmgelegt, wie also schaff ich es dass dieser code regelmässig durchlaufen wird, das dann abschliesst und wieder von neuem beginnt?

grüsse,
lazy

cyberfish
03-09-2001, 00:46
Es gibt eine Möglichkeit. Weiß aber nicht, ob jeder Browser damit ordentlich funktioniert.

Wenn man die HTML-Seite (dynamisch mit PHP generiert) an den Browser sendet, läßt man das
</HTML> einfach weg. Der Browser denkt dann, es kommt noch was und fragt immer weiter ab. Der Server kann dann zeilenweise Chat-Text nachliefern.

Evtl. ist irgendwann ein Refresh nötig. Dazu das html-ende-tag senden und die Seite neu aufbauen. Somit werden Timeouts umgangen.

Ich habe das noch nie programmiert, bei einem guten Chat-System im hmtl-code jedoch mal gesehen. Das hier ist zumindest mein Vorschlag.
Das tolle daran: Man spart sich nervige Applets.

Gruß,
cy-fish.

PS: Sollte es geklappt haben, dann melde Dich doch mal bitte und präsentiere!

RambozoTheClown
03-09-2001, 09:16
Letzeres habe ich auch schon versucht - hatte aber die gleichen Probleme wie du. Wäre echt cool, wenn das jemand hinkriegen würde...

mash
04-09-2001, 11:25
Es funktioniert wirklich in der art und weise, dass man einfach kein Dateiende an den Browser schickt!

Um zu erreichen dass die aktuellste Zeile auch immer zu sehen ist, sendet man eine Javascript Anweisung mit jedem Eintrag mit, z.B. scrollby(AnzahlPixel).

Als Wert für scrollby gibt man einfach einen Wert an, der so hoch ist, dass er nie erreicht wird, z.B. 500000.
Die meisten Browser (Nicht IE unter MAC) scrollen dann einfach bis zur untersten Zeile.

Das ganze gibt es schon fertig ausprogrammiert unter http://www.phpwizard.net/projects/phpChat/


An BitBoy: Chats sind immer Serverlastig, auch bei JavaApplets, da das Applet ja nur zur Darstellung verwendet wird. Die Kommunikation muss auch der Server machen.

RambozoTheClown
04-09-2001, 11:28
Jo wunderbar, das teste ich mal aus...