PHP Chat - Performance / Möglichkeiten

blueage

Lt. Commander
Registriert
März 2006
Beiträge
1.392
Hi zusammen,

ich möchte demnächst einen Chat in PHP/MySQL realisieren.

Mein Ziel ist es ca. 100 Räume mit je 20-30 Usern betreiben zu können.
(Nur Text und Smileys, keine Datei-Uploads oder aufwendige Sachen)

Allerdings werde ich auf bereits vorhanden Skripte zugreifen
und diese - sofern laut ReadMe erlaubt - modifizieren.

Nun habe ich leider des öfteren gelesen dass PHP ungeignet für einen Chat ist. Eine Alternative wäre Flash (in Verbindung mit MySQL).

Als Provider habe ich HostEurope, und folgendes Paket:
http://www.hosteurope.de/produkt/WebPack-M
( PHP5, MySQL, CGI, 50 GB Traffic)

Insofern dürfte es bzgl. Traffic - denke ich - keine Probleme gebe.

Meint ihr sowas ist mit PHP möglich? Mit einer vernünftigen Performance?

Folgende Skripte habe ich bisher gesammelt:

http://www.et-world.de/sed/site/et-chat.htm

http://www.pcpin.com/?view=Projects&project=pcpin_chat

http://hot-things.net/cs/section.php?sid=2

http://www.phpopenchat.org/download.php

http://webdesign.weisshart.de/chat.php

http://www.phpfreechat.net/

http://sourceforge.net/projects/phpmychat/

Als Alternative eine Flash-Version:

http://www.tufat.com/script2.htm

Vielen Dank im Voraus für euere Hilfe!! ;)

Grüße, blueage
 
sowas ist in PHP nicht gut möglich. Du kannst sowas zwar bauen und das wird auch recht schnell zusammengebaut sein, ABER! sowas würde ich an deiner Stelle eher in AJAX umsetzen oder als Java Applett für den Browser.

mit Ajax wird es wohl um einiges schneller gehen als mit PHP, da PHP einfach komplett Serverseitig abläuft gibt es da evtl halt performance probleme (z.B. du schreibst eine Nachricht, die wird in einer MySQL DB gespeichert, dann müssen alle anderen User die auslesen, wobei das Auslesen immer passieren muss, d.h. du lädst die seite immer neu).

bei Ajax lagerst du die last teils auf den Clienten aus, hier lässt du alles in eine XML datei schreiben (geht schneller da direkt auf die HDD ohne umweg geschrieben wird) und die wird dann eben zwar auch ständig ausgelesen, aber das geht bei Ajax einfach "besser"
 
Auch ein Ajax-Script braucht ja serverseitig wieder PHP und auch bei Flash muss der Server über PHP eine Antwort mit den Daten liefern. Man kann ja kaum bei jedem Request den ganzen Chatlog schicken sondern man muss schauen welche NachrichtenID man dem Client schon gegeben hat und welche Nachrichten er dann folglich noch braucht.
Damit ein Chat sinnvoll funktioniert brauchst du wohl mind. eine Aktualisierung pro Client pro Sekunde was also bei deiner angepeilten Nutzerzahl 2000 Requests/Sekunde entspricht. Für nen shared Hoster halte ich das für etwas viel...

Was spricht denn gegen einen IRC-Chat (gibt da ja genug Server wo man einfach nen Channel eröffnen kann)? Da gibts auch Flash/Javaapplets so dass es für den User ohne Installation läuft. Dem Hoster ist das dann auch egal weil das ja nur ein Applet ist und den Server praktisch 0 belastet.

Die Hosteurope-Beschränkung betrifft im Übrigen dedicated Server (also vserver oder root-Server oder Ähnliches). Man darf dort eben aus Sicherheitsgründen keinen IRC-Server oder ähnliche Dienste betreiben. Auf dem Webspace ist das Betreiben eines eigenen IRC-Servers aber ohnehin unmöglich...
 
Zuletzt bearbeitet:
Erstmal danke für die vielen Antworten!

@BerniG
Mit einem IRC-Chat habe ich mich bisher noch nicht beschäftigt.
Bei den kostenlosen alternativen ist sicherlich viel Werbung mit drin, oder nicht?
Bzw. wie finanzieren sich diese kostenlosen Dienste?

Wie schaut's mit Flash aus? Ist ja dann ohne Refresh der kompletten Seite....

@Vesh
Das mit der Ajax und XML Lösung hört sich interessant an!
Ich nehme an das geht Betriebssystemübergreifen (mit der XML-Datei auf dem Client schreiben)? (Win, Linux, Mac,...)

@cheft
Danke für die Info. Zum glück trifft das aber auf mein Paket nicht zu ;) (siehe Antwort von BerniG)
 
Wenn du bei Ajax eine gute Bibliothek wählst (z.b. jquery, prototype), werden sehr viele Browser und Betriebssysteme unterstützt.

Ich würde das auch wahlweise als
- Ajax (Frontend), PHP (Controller) und MySQL (DB)
- JavaApplet (Frontend), PHP (Controller) und MySQL (DB)
realisieren
 
würde dir die erste möglichkeit von Einhörnchen ans Herz legen, scheint mir das sinnigste zu sein, so bist du wenig ans Betriebsystem und den Browser geknüpft, sodass deine User keine Probleme beim Chatten haben.
 
Zuletzt bearbeitet:
Zurück
Oben