WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- chat in php ?!

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » chat in php ?! - 21 Nov 2024 Antworten
chat in php ?!
subjective
Forenheld




Beiträge: 844

Was ist das jetzt?

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Maverick
Pixelschubser




Beiträge: 7

Mahlzeit

Nunja... da möchte ich das Thema nach der ganzen Zeit doch gerne nocheinmal aufleben lassen =)

Die Startfrage war ja ob PHP als Sprache für ein Chatsystem geeignet ist.

Nunja.. die Frage "wie" und in welcher Sprache man denn nun Chats am besten realisiert ist eine Frage die schon seit anfang der 90ger Jahre gestellt wird.

Und die Antwort darauf mit welcher Sprache man denn nun am besten ein Chatsystem realisiert ist eigentlich sehr simpel....denn.... es ist relativ egal...

Man kann ebensogut in PHP einen Chat realisieren der performanter ist als ein in JAVA oder C realisierter Chat (z.B. Vegleich zwischen PHP Socket Chat und JAVA/C Databasepolling Chat == Hier ist die in PHP realisierte Socketversion der klare Gewinner in Sachen Performance)
-----------
Die 2 Hauptrealisierungsmethoden:

Man kann bei Chatsystemen grob zwischen 2 verschiedenen Arten von Systemen unterscheiden.
Die Databasepolling Systeme und die Socketserver Systeme (es gibt zwar noch ein paar andere Konzepte wie z.B TXT-Dateiorientierte Systeme (veraltet und unsicher) und Sharedmemory Ringbuffer-Systeme (zwar recht performant aber dennoch recht unsicher.. und läuft NUR auf *NIX-Systemen) aber diese sollen keine weiter Beachtung finden (Exoten halt ^^) )

1.) Database-Polling-Chatsysteme

Die Idee ist eigentlich recht simpel..
Man suche sich eine (meißtens Scriptsprache) seiner Vorliebe aus.. wie zb PHP.. Perl.. Python.. Ruby (Wundervolle Sprache ;) )..ASP (Naja.. muss man nicht weiter drüber sprechen ;P ) oder gar etwas extrem exotisches wie LUA (jaja ich weiß.. es ist ansich als Ingame Scriptsprache gedacht ;P ) aus.
Dazu nimmt man noch das DBMS seiner Wahl.. MySQL.. PG.. usw usw.. und fängt nun an eien "dezentrales" Chatsystem aufzusetzen..
Was nun im klarem bedeutet.. mehrere unabhängige Instanzen ein und des selben Scripts welche über das DBMS System kommunizieren.
Das Grundkonzept davon ist recht einfach in wenigen Stunden umsetzbar (verfeinerung usw. kann aber eine halbe ewigkeit in Anspruch nehmen ^^)
Auf einem "relativ" modernem Rootserver kann man nun schon mit dieser Art von System bei vernünftiger Planung den Resourcenbedarf von bis zu ~50 Chattern abdecken... Dies ändert aber nichts daran das solche Systeme dennoch recht Resourcehunrig sind.. und man bei "größeren" Chats sehr schnell an seine grenzen stößt (Ja.. soeine DB Connection ist schon etwas was geradezu nach Resourcen schreit.. )
Alles in allem ist diese Umsetzungsmöglichkeit für nicht wirklich mehr als 50 Chatter geeignet... sie hat Vor sowie Nachteile (Vorteile == Kopier die Ansammlung von Scriptdateien (Die oft sogar auf handelsüblichem Webspace funktionieren) einfach auf deinen Webserver.. konfiguriere die DB dafür.. und alles ist ok...)
(Nachteil == nunja.. muss man nicht viel drüber reden.. DB Polling kann eine imense Menge an Performance ziehen... das macht Chatsysteme auf solcher Basis halt nur für "kleinerer" Chatsysteme mit <50 Chattern lohnenswert (oft durch schlechte Planung sogar nur für weniger als 25 Chatter))

2.) Soketserver-Chatsysteme

Die Möglichkeiten dieser Technik klingen geradezu nach der Erlösung aus allen Problemen.. Niedriger CPU-Verbrauch.. geringer RAM-Verbrauch... weniger Traffic-Verbrauch usw.
Das Konzept basiert darauf das zum Chatzeilenverteilen keine Datenbank mehr eingesetzt wird, sondern alles über eine Zentrale Instanz (fest laufender Deamon) läuft, welcher als Socketserver agiert und Requests entgegennimmt.
Aber es hat nun auch siene Kosten.. Eigene Socketserver Systeme sind nicht etwas was man mal so eben in 45 Minuten Mittagspause (wie DB Pollingchats) schreiben kann.. Man muss viele Dinge beachten wie zb die Sicherheit (hehe ja.. hier gibt es nun keinen Webserver der dafür Sorgt das keine übergroßen Requests usw eingeschleust werden ;) ). Um all diese Sachen muss man sich selber kümmern. Dafür kann man nun aber einen imensen Performancegewinn bekommen.. Socktchat Systeme mit 1000 Onlinechattern sind auf kleineren Servern kein Problem. Dies setzt noch nichteinmal die Grenze.. Mit vernünftig ausgeklügelter Technik (Stichwort Skalierbarkeit und ähnliches) lässt es sich sogar in Dimensionen von 10tsd ja.. sogar 100tsd Chattern planen (hehe braucht jemand wirklich soviel? ^^ wenn ja.. bitte bei mir melden.. ich bin immer scharf auf ein wenig Nebenverdienst *fg* ;) )

Nunja.. das waren die 2 wichtigsten Backendkonzepte für Chatsysteme..
Ich denke es sollte nun klar hervorgehen das die Sprache weniger die wichtige Wahl ist als das Konzept WIE man ein Chatsystem realisiert.. DB-POLLING sowie SOCKET Systeme lassen sich mit allen heute gängigen Sprachen realisieren (wobei ich bei Socketsystemen doch klar zu Sprachen wie JAVA, C oder Ruby raten würde wegen ihren Multithreading-eigenschaften die bei Socketchats sehr von Nutzen sind) Es kommt halt nur auf den Einsatzzweck an.

Wer Anregungen.. Kritik. oder Fragen hat kann mir diese gerne via Email an Maverick1701D at gmx dot de (hehe jaaa meine spamaddy ;P) zukommen lassen =)

  Profil   Editieren   Zitieren
Can
Halbgott




Beiträge: 1324

Hi Maverick,

danke für deinen langen Beitrag

Stimme dir zu, in Prinzip ist es völlig egal, in welcher Sprache solch ein Chat geschrieben wird, was zählt, ist, wie er programmiert ist. Bei PHP spielt es dann wohl auch noch ne Rolle, ob PHP als CGI-Modul läuft oder nicht.

Allerdings verstehe ich nicht so ganz, wieso du txt-basierte Chats als unsicher und veraltet bezeichnest. Nach meinen Erfahrungen ist es sogar viel sinnvoller die Chatmessages in Textdateien zu speichern als in MySQL-Tabellen, denn wenn pro Sekunde pro Textausgabescript mindestens 10 MySQL-Queries laufen und dann 30 Instanzen am Laufen sind, treiben die MySQL-Prozesse die Serverleistung ganz schon hoch. Mit Textdateien ist das sehr viel moderater. Hab auf die Art schon ein paar Chatsysteme geschrieben (unter anderem nen kleinen XOOPS-Chat, der z.B. auf http://homerecording.de läuft) und damit ganz gute Erfahrungen gemacht, allerdings auch nur im 30-User-Rahmen...

Gruß
Can

---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox

  Profil   E-Mail   Editieren   Zitieren
ChristianDuschl
Pixelschubser




Beiträge: 3

egal ?? es ist alles andere als egal.
php kann clientseitig nur darstellen und zwar in html.

wie bitte programmierst du in php einen chat, der clientseitig aktiv sein muss (z.b. wenn erwünscht ist, dass files direkt von user zu user gesendet werden) ??? viel spass dabei in php, es GEHT nicht.
wie bitte programmierst du das in asp, cf oder cgi oder welcher server-script-sprache auch immer ?? GAR NICHT.

wie bitte programmierst du überhaupt nen chat, der clientseitig aktive komponenten braucht ? in c ? basic ? wie soll er dann auf linux, mac und windows laufen ?? GAR NICHT.

im übrigen würde ich auf keinen fall zu c raten, ich wüsste auch nicht, dass damit heutzutage überhaupt noch großartig etwas programmiert würde. nimm lieber ne moderne, objektorientierte sprache, da ist sowas wesentlich leichter.

übrigens: c und c++ unterstützen weder multithreading noch multiprocessing (java schon).
das tut bei c oder c++ allenfalls das unterliegende betriebsystem.

grüße


  Profil   E-Mail   Editieren   Zitieren
Maverick
Pixelschubser




Beiträge: 7

Can schrieb am 09.10.2005 13:49

Bei PHP spielt es dann wohl auch noch ne Rolle, ob PHP als CGI-Modul läuft oder nicht.



Ja. z.B im RAM-verbrauch fälts etwas negativer aus für die CGI Version (jedes mal neuer interpreter der geöffnet werden mussusw.. was doch denke ich schon mindesrtens 1Mb RAM verbrauchen wird (kann ich aber jetzt keine genaue Aussage darüber treffen.. hab ich noch nie nachgeschaut)

Can schrieb am 09.10.2005 13:49

Allerdings verstehe ich nicht so ganz, wieso du txt-basierte Chats als unsicher und veraltet bezeichnest. Nach meinen Erfahrungen ist es sogar viel sinnvoller die Chatmessages in Textdateien zu speichern als in MySQL-Tabellen, denn wenn pro Sekunde pro Textausgabescript mindestens 10 MySQL-Queries laufen und dann 30 Instanzen am Laufen sind, treiben die MySQL-Prozesse die Serverleistung ganz schon hoch. Mit Textdateien ist das sehr viel moderater.



Naja eines der Probleme bei Systemen die auf TXT-Dateien basieren ist die Sicherheit...
Mir persönlich gefällt der Gedanke nicht sehr, das die Dateien oft ungeschützt in einem Ordner liegen.. und andere Programme die auf dem selbem Server laufen vieleicht darauf zugreifen können... (Könnten sie zwar auch auf die DB.. aber nur wenn PW/USER bekannt ist).. Man muss sich dahingehend haltz selber darum kümmern alles abzusichern. Naja das sind aber bei mir mehr persönliche vorlieben/abneigungen wieso ich TXT Dateien dafür nur ungerne einsetzen würde. Desweiteren muss man bei TXT Systemen auch ein wenig mehr aufpassen.. weil man sich selber um die ganze Datenorganisation oder Filezugriffsverwaltung usw. kümmern muss.. wobei schnell mal Fehler passieren können (Das Problem hat man bei einer DB nicht wirklich an der Backe kleben.. dazu ist ja das DBMS da ^^)

Naja das sowas bei 10 DB Querys pro Sekunde pro Scriptinstanz schnell am Limit ist ist klar.. Aber wieso soviele Querys?
Ansich kann man es so anlegen das man pro Sekunde nur ein einzigstes (oder wer halt alle 0,5 seks mal pollen will 2 pro Sekunde) Query beim pollen benötigt, wenn die Tabellenstruktur Struktur usw recht überdacht ist.

Bei PHP Chats die auf PHP ab Version 5.0 und der MySQLi Extension laufen kann man auch nochmal ein paar Prozent Leistungsgewinn herrausschlagen (Stichwort Prepared Statements und andere neue Funktionen)

ChristianDuschl schrieb am 09.10.2005 18:09

egal ?? es ist alles andere als egal.
php kann clientseitig nur darstellen und zwar in html.



Wenn du mein Posting nochmals aufmerksam lesen würdest würdest du vieleicht bemerken das ich in diesem nur die BACKEND Lösungen für Chatsysteme durchgenommen habe.. keine Frontend/Client Lösungen.

Desweiteren ist deine Aussage "php kann clientseitig nur darstellen und zwar in html." falsch ;). Es gibt für PHP wie auch für die meißten anderen Scriptsprachen GTK.. Mit PHP-GTK wäre es möglich einen Client samt GUI zu schreiben.. Es gibt zwar nicht wie bei JAVA/Applets die lösungen das dann via Plugin im Browserfenster zu starten.. aber man kann es als Standalone Client runterladen und ausführen (PHP Interpreter wird benötigt). Aber sowas möchte sicher auch keiner machen.. PHP-GTK kann sich nicht gerade mit Performance schmücken..Da wären andere Sprachen für einen Client geeigneter.

ChristianDuschl schrieb am 09.10.2005 18:09

wie bitte programmierst du in php einen chat, der clientseitig aktiv sein muss (z.b. wenn erwünscht ist, dass files direkt von user zu user gesendet werden) ??? viel spass dabei in php, es GEHT nicht.
wie bitte programmierst du das in asp, cf oder cgi oder welcher server-script-sprache auch immer ?? GAR NICHT.



Wie oben schon erwähnt es ging NICHT um Clients.. aber abgesehn davon.. mit einem PHP-GTK Client könntest du soeine Dateishare Funktion realisieren

Alternativ könnte man überlegen das Dateisenden nicht direkt von Client zu Client zu machen sondern über den Server als Umweg.. Client <==> Server <==> Client.. Sowas würde funktionieren.. auch wenn es keine wirklich befriedigende Lösung ist.

ChristianDuschl schrieb am 09.10.2005 18:09

wie bitte programmierst du überhaupt nen chat, der clientseitig aktive komponenten braucht ? in c ? basic ? wie soll er dann auf linux, mac und windows laufen ?? GAR NICHT.



Es geht zwar immer noch nicht um Clients *g* aber auch die Antwort auf diese Frage wäre GTK ;)

ChristianDuschl schrieb am 09.10.2005 18:09

im übrigen würde ich auf keinen fall zu c raten, ich wüsste auch nicht, dass damit heutzutage überhaupt noch großartig etwas programmiert würde. nimm lieber ne moderne, objektorientierte sprache, da ist sowas wesentlich leichter.



Hier stimme ich ausnahmsweise mal mit dir überein ;).
Zwar Hat C/C++ durchaus noch seine Einsatzgebiete.. aber bei Chatserver ist JAVA doch vorzuziehen.

ChristianDuschl schrieb am 09.10.2005 18:09

übrigens: c und c++ unterstützen weder multithreading noch multiprocessing (java schon).
das tut bei c oder c++ allenfalls das unterliegende betriebsystem.



Ich bin zwar kein C/C++ Programmierer.. aber dennoch meine ich gehört zu haben das es Lösungen für Threads gibt.. Wie genau die nun realisiert sind (Userspace Kernelspace oder Hybride) weiß ich allerdings nicht.

So bleibt die Aussage das es relativ egal ist welche Sprache man für die Serverseite verwendet denke ich bestehen.. nicht die Sprache, sondern das Konzept ist der wichtigste Faktor. Es ist klar das man manche Sprachen bevorzugen sollte.. Aber dies ändert nichts daran das ein vernünftiges Konzept mit z.B. PHP performanter sein kann als ein schlecht durchdachtes in JAVA umgesetztes.

Mfg
Mav der überlegt irgentwann auch mal das Thema Clients vom Zaun zu brechen *g*

  Profil   Editieren   Zitieren
ChristianDuschl
Pixelschubser




Beiträge: 3

lol... clientseitiges php... du scherzt...
ich bin c und c++ programmierer... so seit 20 jahren... lösungen für multithreading oder multiprocessing in c gibt's klar... aber immer nur über die api des betriebsystems.
im übrigen ist das auch wurscht: c- lösungen sind an sich serverseitig praktisch inakzeptabel, da, sobald sie wachsen nicht mehr stabil zu bekommen sind.

ausserdem: mit chatlösungen meine ich IMMER chatlösungen, die im browser laufen,. alles andere ist inakzeptabel.
gtk ist keine lösung... oder ... hast du mal was damit gebastelt ?? na viel spass.....

  Profil   E-Mail   Editieren   Zitieren
Maverick
Pixelschubser




Beiträge: 7

ChristianDuschl schrieb am 09.10.2005 21:45

lol... clientseitiges php... du scherzt...



hehe naja ned so ganz.. habe nur aufgezeiugt das es sogar dahingehend eine Lösung gibt.. Aber GTK für sowas einsetzen würd ich selber nie im Leben ^^

ChristianDuschl schrieb am 09.10.2005 21:45

ich bin c und c++ programmierer... so seit 20 jahren... lösungen für multithreading oder multiprocessing in c gibt's klar... aber immer nur über die api des betriebsystems.



Naja wenigstens gibt es welche ^^(ich glaub PHP bietzet auch auf *NIX Platformen POSIX Threads an)

ChristianDuschl schrieb am 09.10.2005 21:45

im übrigen ist das auch wurscht: c- lösungen sind an sich serverseitig praktisch inakzeptabel, da, sobald sie wachsen nicht mehr stabil zu bekommen sind.



Wie gesagt ich habe mit C bisher keine Erfahrungen gesammelt.. kann mir aber durchaus vorstellen, das erweitern von größeren C Programmen eine wiederliche Aufgabe ist.. was es recht ungeeignet für Serveranwendungen macht.. da magst du also Recht haben.

ChristianDuschl schrieb am 09.10.2005 21:45

ausserdem: mit chatlösungen meine ich IMMER chatlösungen, die im browser laufen,. alles andere ist inakzeptabel.



Naja.. eine richtig gute Chatlösung muss Unterstützung für mehrere Clientarten bieten.. auch wenn in der Regel dann nur ein Client benutzt wird.

Diese Anforderungen kann man aber ansich mit JEDER Sprache gerecht werden.. z.B: Backend == PHP Client == Java oder FLash oder Shockwave oder Standalone C Client usw. usw.

ChristianDuschl schrieb am 09.10.2005 21:45

gtk ist keine lösung... oder ... hast du mal was damit gebastelt ?? na viel spass.....



Es ist eine Lösung wie man auch den CLIENT z.B. in PHP realisieren kann. Zwar nur als Stand-Alone App aber es geht.

Ich selber allerdings würde soetwas nicht machen.. Bevor ich einen PHP GTK Client machen würde, würd ich lieber ein Applet machen was auch auf einer M$ VM läuft *hrhr*

  Profil   Editieren   Zitieren
Marc21Ja
Pixelschubser




Beiträge: 5

Hallo Maverick!

Zu Deiner Socketvariante (auf die ich evt. meinen Chat auch gerne umschreiben möchte):

Du schreibst:
Das Konzept basiert darauf das zum Chatzeilenverteilen keine Datenbank mehr eingesetzt wird, sondern alles über eine Zentrale Instanz (fest laufender Deamon) läuft, welcher als Socketserver agiert und Requests entgegennimmt.

Ich habe eine Frage hierzu: Wie schreibt, bzw. installiert man diesen festlaufenden Daemon? Ich habe einen Webspace bei einem Anbieter und normalerweise laufen ja alle Programme, so lange der User sie in seinem Browser laufen lässt (beim MySQL-seitigen Chat kein Problem...). Wie bekommt man eine solche zentrale Instanz, einen solchen Chatserver, der eigenständig auf dem Server läuft, in PHP zum Laufen?

Viele Grüße,
Marc

  Profil   E-Mail   Editieren   Zitieren
ChristianDuschl
Pixelschubser




Beiträge: 3

die frage ob es lösungen für irgendwas gibt ist rein akademisch und praktisch nicht von belang.

praktisch zählt die lösung, die schnell gebastelt ist, stabil läuft und userfreundlich ist.
gtk ist da clientseitig einfach nur inakzeptabel (ebenso wie c oder c++).
klar kann man auch darin chats basteln... nur: wer soll den benutzen ??

wie die praxis zeigt gibt es derzeit nur drei wege und das sind html- basierende chats (php, asp, jsp oder was auch immer, ist völlig austauschbar), applets und macromedia.
alles andere ist derzeit unrealistisch.

bei der programmierung eines chats wirst du übrigens schnell feststellen, dass der serveranteil ziemlich wurscht ist, der ist von der programmierung her pipifax, egal ob textfile- basierend, sql- basierend (an sich unfug für nen chat) oder ob alles im speicher gehalten wird (sollte so sein). was arbeit kostet, das ist der client und dessen konfigurierbarkeit.

ich habe mittlerweile mehrere chats programmiert... und der serveranteil liegst vom aufwand her meist unter 10 % des gesamtaufwands.

zur diskussion php, asp, jsp, cf und so weiter: da hab ich es mir leicht gemacht und hab mir einfach nen codegenerator geschrieben und definiere code für sowas in ner metasprache. der generator wirfst wahlweise jsp, cf, php oder asp raus... wie gesagt... das sind serveranteile, die nur html generieren... in diesem falle austauschbar.

  Profil   E-Mail   Editieren   Zitieren
Maverick
Pixelschubser




Beiträge: 7


Marc21Ja schrieb am 10.10.2005 23:40
Hallo Maverick!

Zu Deiner Socketvariante (auf die ich evt. meinen Chat auch gerne umschreiben möchte):

Du schreibst:
Das Konzept basiert darauf das zum Chatzeilenverteilen keine Datenbank mehr eingesetzt wird, sondern alles über eine Zentrale Instanz (fest laufender Deamon) läuft, welcher als Socketserver agiert und Requests entgegennimmt.

Ich habe eine Frage hierzu: Wie schreibt, bzw. installiert man diesen festlaufenden Daemon? Ich habe einen Webspace bei einem Anbieter und normalerweise laufen ja alle Programme, so lange der User sie in seinem Browser laufen lässt (beim MySQL-seitigen Chat kein Problem...). Wie bekommt man eine solche zentrale Instanz, einen solchen Chatserver, der eigenständig auf dem Server läuft, in PHP zum Laufen?

Viele Grüße,
Marc



Hallo Marc.

Nunja das Problem bei Socket-Chats ist das man ansich einen eigenen Server.. oder wenigstens Webspace mit einem Konsolenaccount benötigt... Das ist aber leider nur selten der Fall.
Desweiteren muss im Fall von PHP die Socket Extsion von PHP aktiviert sein... was bei vielen Hostern aber leider auch nicht der Fall ist..
Aber einmal von diesen Problemen abgesehen würde die Sache wie folgt laufen:

Im Hauptprogramm (Deamon) startest du einen Socket und bindest diesen an die gewünschte Adresse/IP..
In einer Endlosschleife fragst du nun diesen Socket ab mit accept ab.
Arbeitest die eingehenden Requests ab.. und schließt danach deren Connection wieder.

Dieses File startest du nun NICHT über den Webserver sondern direkt über die Konsole im Interpreter. z.B. unter windows mit "php-cgi.exe relativer_pfad_zum_file/filename".


ChristianDuschl schrieb am 10.10.2005 23:53

die frage ob es lösungen für irgendwas gibt ist rein akademisch und praktisch nicht von belang.

praktisch zählt die lösung, die schnell gebastelt ist, stabil läuft und userfreundlich ist.
gtk ist da clientseitig einfach nur inakzeptabel (ebenso wie c oder c++).
klar kann man auch darin chats basteln... nur: wer soll den benutzen ??



Wie gesagt... ich meine selber nicht das ein Client auf GTK Basis sehr geeignet wäre..
Halte aber ein Applet auch nicht für sehr optimal (Zwar definitiv besser als irgentwas auf GTK aber dennoch ist es wünschenswert Applets zu vermeiden) ;)


ChristianDuschl schrieb am 10.10.2005 23:53

wie die praxis zeigt gibt es derzeit nur drei wege und das sind html- basierende chats (php, asp, jsp oder was auch immer, ist völlig austauschbar), applets und macromedia.
alles andere ist derzeit unrealistisch.



Nunja das sind wiederum die Clientarten.. Ja.. hiervon kommen zur Zeit hauptsächlich DHTML (HTML/CSS/JS Combos), Java, Flash und eventuell noch Shockwave in Frage.. wobei DHTML oder FLASH Lösungen vorzuziehen wären... (Aber darüber kann man auch wieder stundenlang diskutieren ;) )


ChristianDuschl schrieb am 10.10.2005 23:53]

bei der programmierung eines chats wirst du übrigens schnell feststellen, dass der serveranteil ziemlich wurscht ist, der ist von der programmierung her pipifax, egal ob textfile- basierend, sql- basierend (an sich unfug für nen chat) oder ob alles im speicher gehalten wird (sollte so sein). was arbeit kostet, das ist der client und dessen konfigurierbarkeit.

ich habe mittlerweile mehrere chats programmiert... und der serveranteil liegst vom aufwand her meist unter 10 % des gesamtaufwands.



Hier muss ich wiederum wiedersprechen *g*... Sicher, Wenn man einen Socketserver erstellt der nur wenige hundert simultaner Chatter verkraften muss, dann kann man den Kern des Backend recht schnell realisieren (dennoch sollte man den Aufwand nicht unterschätzen..).. Will man allerdings eine richtige Serverlösung die viele tausend simultaner Connections verwalten muss.. und viele hundert Requests pro Sekunde abarbeiten soll, dann ist die Serverseite alles andere als pillepalle ;).
Alleine die Code-planung/visualisierung und das testen der einzelnen Komponenten kann hier schon einiges an Zeit in Anspruch nehmen.. Wer hier nun also weiterhin behaupten will das eine richtige Serveranwendung nur einen geringen Bruchteil des Projektcodes und der benötigten Zeit ausmacht, der hat sicher noch nie einen einen großen Chatserver geschrieben.


ChristianDuschl schrieb am 10.10.2005 23:53

zur diskussion php, asp, jsp, cf und so weiter: da hab ich es mir leicht gemacht und hab mir einfach nen codegenerator geschrieben und definiere code für sowas in ner metasprache. der generator wirfst wahlweise jsp, cf, php oder asp raus... wie gesagt... das sind serveranteile, die nur html generieren... in diesem falle austauschbar.



Ich weiß nicht ob ich das um so späte Zeit noch genau verstehe was du da meinst.. aber ich glaube du meinst damit die Kommunikationsschnittstelle zwischen Server und Client?
Naja wie ich in einem der vorherigen Postings schonmal sagte.. Richtig lustig wird es erst dann wenn man mehrere Verbindungs und Datenprotokolltypen SIMULTAN unterstützt um verschiedene Arten von Clients gleichzeitig zu nutzen.. z.B.

Applet oder Flash Client der EINE Connection zum Chatserver aufhält, über diese incomming und outgoing Transfer regelt und als Transferprotokoll XML nutzt..

Und als weiteren z.B.

DHTML Client der eine Connenction für den Chatstream aufhält.. und für jeden weiteren Request (Chatzeile usw.) eine neue öffnen muss und nach beendigung wieder schließt. Als outgoing Protokoll würde dieser Client HTTP GET oder POST verwenden.. und als Incomming zb Daten im JS Format über den Stream verlangen..

Erst ab hier fängt es an bei Chatservern so richtig interesant zu werden ^^
Es gibt noch eine Menge mehr an Kernfeatures und anderem Codingaufwand, die soeinen Chatserver zu weit mehr als einem Programm machen, welches nur 10% des gesammtcoding Aufwands (Client+Server) in Anspruch nimmt..

Diese Nachricht wurde geändert von: Maverick
  Profil   Editieren   Zitieren
Dyne
Pixelschubser




Beiträge: 4

Ich hol hier mal ein altes Thema wieder hoch, weil es für mich gerade aktuell ist.

Folgendes Script habe ich:

header("Content-type: text/html");
set_time_limit(0);
$stamp = time();
ob_start();

while(1){
if($stamp = time()+5){
echo "X

";
}
ob_flush();
sleep(1);
}
?>

Beim Aufruf der Seite wird nichts angezeigt. Ich arbeite in einer XAMP-Umgebung auf meinem Rechner.

Diese Nachricht wurde geändert von: Dyne
  Profil   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

Hast du das Teil mal mit error_reporting(E_ALL) ausgeführt? Ich seh übrigens keinen Sinn im if, das dürfte immer zu true ausgewertet werden.

  Profil   Editieren   Zitieren
raiserle
Mausakrobat




Beiträge: 172

languitar,
sinn macht die if schon, wenn er das beabsichtigt, was er da tut. immer wieder eine wertzuweisung. (*scherz) ==

und nun zum thema. wenn du über sleep eine pause machen willst, wird die ausgabe, trotz erzwungener bufferausgabe, erst nach dem beenden des scriptes durchgeführt.

warum das so ist, keine ahnung. jedenfalls habe ich es auf 2 servern getestet und die ausgabe kam immer erst nach der max.exec.time .

---
Irren is Menschlich

Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!

Kameradschaft ist, wenn der
Kamerad schafft !!!!

  Profil   Editieren   Zitieren
Dyne
Pixelschubser




Beiträge: 4

*autsch* Ja, natürlich: die Wertzuweisung soll ein Vergleich sein :D

Hab mein Script entsprechend eurer Bemerkungen geändert:

header("Content-type: text/html");
set_time_limit(0);
error_reporting(E_ALL);
$stamp = time();
ob_start();

while(1){
if($stamp < time()+4){
echo "X

";
}
ob_flush();
}
?>

Leider tut sich immernoch garnichts. Es wird nichtmal ne leere Seite angezeigt. Es wird immernoch die alte Seite angezeigt und der Browser ist "am laden". Kann es sein, dass ich evtl. den Safe-Mode anhab und es deswegen nicht funktioniert? Kann mir ggf. jemand erklären, wie ich den bei XAMP ausschalte?

EDIT: Nein, Safe-Mode ist aus... hmpf

EDIT2: Ich hab inzwischen ein paar andere Scripts mit ob_start() und ob_flush() ausprobiert und es erfolgt immer erst eine Ausgabe wenn das Script komplett zuende gelaufen ist. *verzweifel*

Diese Nachricht wurde geändert von: Dyne
  Profil   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

Welche PHP Version läuft denn?

  Profil   Editieren   Zitieren
Seite 1 | 2 | 3 | 4 | 5 | 6  

Antworten
Forum » PHP & MySQL » chat in php ?!

Aktuelle Beiträge zur Hilfe im Forum für Homepage - chat in php ?! im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8126688    Heute : 606     Gestern : 463     Online : 19     21.11.2024    18:47      1 Besucher in den letzten 60 Sekunden        
alle 60.00 Sekunden ein neuer Besucher
Nach oben