phpbar.de logo

Mailinglisten-Archive

AW: [php] Chat realisieren in PHP?

AW: [php] Chat realisieren in PHP?

Michael Stenz mstenz-design at web.de
Mon Aug 16 21:35:04 CEST 2004


Hi Gianni, 

>> Ich soll einen Chat realisieren. Wobei max 5 - 10 leuten gleichzeitig
Online
>> sein werden.
>> Auf dem Server kann ich (leider) keine Software installieren/kompilieren
à la
>> ircd oder Conference Room.

Das ist schlecht, jedoch nicht unbedingt sehr schlimm ;)


>> Ich würde es gerne mit PHP lösen, aber ich habe schon viel darüber
gelesen, dass
>> einem abgeraten wird.. 

Ich persönlich *liebe* PHP, und ich bin auch der Meinung, dass mit PHP fast
alles lösbar ist.

>> Würde mich interessieren, wer das schon gemacht hat.. 
>> Evtl. ein kurzes Feedback über Hürden etc.

Ich habe schon verschiedene PHP-Chat-Lösungen ausprobiert. Wie schon in der
Liste vorgeschlagen worden ist, sollte man die Daten in einer DB abspeichern
und dann auslesen lassen. Das Auslesen und das Senden an den Client ist
hierbei jedoch der Schwierige Knackpunkt. Die "alten" Refresh-Methoden, dass
alle 5 Sekunden überprüft wird ob neue Nachrichten da sind finde ich sehr
abgedroschen.

Ich habe mit PHP einen eigenen Dämon geschrieben, der die Messages nicht mal
in einer DB zwischenspeichert, sondern sofort an die verbundenen Clients
weitergibt, als sogenanntes Streaming mit Zuhilfenahme von http-Keep-alive.
Das hat den Vortei, dass sofort wenn ein Text abgeschickt wird, dieser beim
anderen Client angezeigt wird, ansonsten passiert nichts, bzw. es werden nur
um einen disconnect vom Browser zu unterbinden nicht sichtbare Kommentare
gesendet.

So eine Variante währe auch ohne Installation möglich. Du müsstest dazu
diesen Dämon in eine php-Datei auf dem Server ablegen und von einem
entfernten Rechner die php-Datei starten. Der Chatroom ist dann solange
erreichbar wie auf dem entfernten rechner die PHP-Datei aufgerufen ist. Dies
ist in deinem Falle eigentlich nicht besonders schlimm, da du so einfach den
Server starten und stoppen kannst und zusätzlich die Aktivitäten die sich im
Chat erreignen mitprotokollieren und sofort ausgeben und einsehen kannst. 

Um so einen Dämon zu schreiben musst du die RFC's des http-Protokoll
durchlesen und PHP die socket-Funktionen nutzen. Da dein Dämon dann ein
eigenen http-Server integriert haben muss, solltest du in diesem Gebiet
natürlich Ahnung haben.

In meinem Falle benötigst du kein einziges Javascript, sondern benötigst nur
ein Frameset mit dem Ausgabeframe und einem mit dem Textfeld zur Eingabe der
Informationen. Jedoch wäre es natürlich von Nützlichkeit, wenn auf der
rechten Seite oder so ein erneuter Frame ist, indem die eingeloggten User
angezeigt werden. 

>> Mit freundlichen Grüssen
>>  Gianni Annunzio

Grüße, 
Michael

P.S.: ein PHP-Chat schreibt sich nicht schnell in ein paar Tagen. Ich
programmiere schon ein paar Monate an meinem Chat, wobei dort ein gesamtes
Community-System integriert ist.



php::bar PHP Wiki   -   Listenarchive