Mailinglisten-Archive |
Hallo Norbert, also bevor ihr hier auf das System mit Dateien schimpft das es so schlecht wäre probiert es doch einfach mal aus. Ich will mal versuchen die Technik noch etwas genauer darzustellen: Was gemacht wird ist bei eingehenden Nachrichten diese an die Dateien anzuhängen die sie bekommen sollen. D.h. im einfachen Fall an alle Benutzer im Raum. Bei mir mach das das PHP Script das die Daten vom Browser entgegen nimmt. Dazu wird eine serialisierte Liste der Raumbenutzer verwendet, in deren Datei geschrieben fertig. Das auslesen läuft keinesfalls auf ein "heraussuchen" hinaus. Vielmehr ist die Textdatei als eine Pipe zu verstehen. An der einen Seite schreibt einer an der anderen Seite liest einer. Dazu muss man sich eben den Filepointer merken und einfach wieder dorthinsetzen wo man zuletzt gelesen hat. Das macht jedes Client-Lese-Script selber und mit extrem wenig Aufwand. Fazit der ganzen Aktion: Der Chat läuft bei einem Massenhoster (Hosteurope) und ohne Datenbankzugriff extrem stabil und schnell. 50 User oder mehr sind selbst bei dem Hoster kein Problem auf dem System. Auf einem Testsystem mit 50 Usern an dem man mal die Last sehen konnte war da nicht mehr als 5% Last (P4-1.8 GHZ, 1 GB Ram). Sicher für noch größere Systeme bietet sich eine zentrale Serverinstanz an die den Datenaustausch In-Memory erledigt. Dazu habe ich bereits Jabber erfolgreich getestet. Ein Jabber Server an dem ein PHP Lese-Script ansetzt ist eine gute Alternative, solang man einen eigenen Jabber Server laufen lassen kann. Warum habe ich eigentlich einen eigenen Chat gebaut? Der Grund liegt in der 100%ig Anpassbarkeit vor allem was Benutzer/Profile und Passwörter betrifft. Er musste in einem bestehenden Framework laufen und die dort vorhandenen Benutzerprofile verweden können. Viele andere Produkte (so leider auch Jabber daher nur Test) verschlüsseln nichtmal ihre Passwörter in ihrer Datenbank. Nur mal so am Rande :-) IRC-Server musste leider ausfallen da die Benutzernamen-Einschränkungen die zumindest da wo ich es getestet habe existierten nicht akzeptabel waren. Gruß, Andreas
php::bar PHP Wiki - Listenarchive