Hallo zusammen!
Ich versuche seit einer Ewigkeit einen Webchat auf die Beine zu stellen, doch es will nicht gelingen. Es scheitert daran, dass der Browser die Chatausgabe erst beim Beenden der Verbindung (also nach komplettem Laden der Seite) anzeigt.
Ich habe mittlerweile schon herausgefunden, dass man sich hierbei mit "flush()" Abhilfe schaffen kann. Das funktioniert bei mir aber leider auch nicht ohne weiteres. Ich bekomme zwar nun den Anfang des Chatouts mit Channelangabe und Anwesenden Usern, aber danach werden keine neuen Daten mehr angezeigt. Statt dessen wird beim Empfang weiterer Daten die Verbindung beendet.
Es scheint, als würde der zweite "flush()" Befehl das ganze zum Kippen bringen. Wenn einer ne Idee hat, wäre ich sehr dankbar.
Hier ein Auszug des Skripts:
---------------------------------------------------------------------
print $cgi->header(-type => 'text/html');
chatout abfragen (Schleife)
$req = $ua->get($chatout, ':content_cb' => &callback, ':read_size_hint' => 4096);
sub callback
{
my($data, $response, $protocol) = @_;
print $data;
my $stdout = select(STDOUT);
flush($stdout);
}
---------------------------------------------------------------------
MfG, Sören