Mailinglisten-Archive |
Daniel Lorch wrote: > uhm halt. Weiter vorne im Thread hat ja jemand den Term "HTTP Streaming" er- > funden. Gemeint sein soll, dass der Browser die Verbindung zu einem Script > offen hält anstatt zu "pollen" und sukzessive ein Script hämmern. Das klingt > Webserver-freundlicher, ist es aber nicht. Bei mir wird mit "HTTP Streaming" gearbeitet... und es läuft ohne Probleme. Nur passt meine Chatlösung überhaupt nicht in das gewünschte Konzept, um das es hier geht. Der Grund: Mein WebChat Server ist in purem Java, mit MySQL Connector an eine MySQL Datenbank für die Benutzerdaten Verwaltung. Abgesehen davon, dass Du Recht hast mit Deiner Aussage über die Einstellungen, Limitierungen und Probleme, die mit einem Webserver auftreten, ist das Streaming keine dumme Idee. Ich muss immer wieder den Gedanken aus meinem Kopf schmeißen, dass PHP eine Scriptsprache ist und das einzige große Problem für einen solchen Chat die Persistenz ist. (Ohne die hat man automatisch einen hohen Arbeits- bzw. Resourcenaufwand, mit ist dieser überschaubarer und besser einteilbar, planbar). > S'geht. Was tut Chat schon? Nimmt Deine Message und verteilt sie an alle. Was > ist daran CPU-intensiv. Das ist hauptsächlich i/o. CPU-intensiv ist es, wenn man nicht daran denkt, die letzte Dateiposition (bis zu der ein Benutzer Meldungen das letzte mal zugeschickt bekommen hatte) zu speichern und direkte Zugriffe dadurch zu ermöglichen. Die Lösung, die anfänglich hier kurz dargestellt wurde, immer die letzten 20 Meldungen zu holen ist immer schlecht (ich möchte hier nicht auf jemand oder jemandes Idee rumreiten damit, bitte also nicht misverstehen). Kurz und Bündig: Das Problem ist die Suche nach den, für einen bestimmten Client, neuen Meldungen. Die Entscheidung für Text-basiert oder Datenbank-basiert ist eher eine Geschmacksfrage und die Frage danach, was das System über den Chat hinaus ermöglichen soll. Featurereicher könnte das System ausfallen, wenn über eine Datenbank Möglichkeiten wie Statistiken, Suche in Chats oder Halten und Erzeugen von (gefilterten) Logs geboten wären. Diese Dinge würden IMO Zeit und Performance kosten, wenn man sie über Textdateien lösen würde. Performanter ist (auch bei großen Systemen) für den Chatbetrieb wohl die dateibasierte Lösung bzw. eine SharedMemory Lösung. Man muss sich also _vorher_ schon im Klaren sein, was man braucht und vor allem: was man _nicht_ braucht. Gruß -- Dennis Sterzenbach
php::bar PHP Wiki - Listenarchive