Chat in PHP?

Na ich weiß nicht, habt ihr alle freetraffic? Chat in reinem PHP-Code zulösen ist zwar nicht unmöglich, aber wer rechnen kann, ist klar im Vorteil. Bei einem Reload(je nach gröse des Scriptes) mal nur von 10 KB ausgegangen, mal 5sec-reload-time, sind das 120 KB/min pro User mal 10 User gleich 1200 KB/minmal 30 Minuten 36000 KB für ne halbe stunde chat. beim traffic-preis von nur 10 € und nur 3 GB freetraffic, seit ihr nach einer Woche Pleite wenn mal ein paar User mehr im Chat sind.


Grüße aus dem hohen Norden

MasterNemo
 
@MasterNemo: Und wer sich damit auskennt, ist hier noch klarer im Vorteil... ein Refresh-Chat ist nicht die einzige Möglichkeit, man kann schließlich auch einen Stream-Chat mit PHP realisieren.
 
na, master nemo, wer ahnung hat ist aber noch klarer im vorteil ;-)

die größe des php-scriptes ist doch vollkommen irrelevant, da php eine serverseitig interpretierte scriptsprache ist.
das heißt also: liegen keine neuen zeilen für den user vor, wird nichts üebrtragen (obwohl man wegen eines alten netscape-bugs besser ein leerzeichen wegschicken sollte)
erst wenn für den user etwas vorliegt, wird genau das übertragen.
das einzige was an der reload-lösung eben mehr anfällt, sind die header, die dabei durch die gegend geschickt werden. aber das ist tatsächlich ein nicht zu großer posten.
von daher kommt meine rechnung von oben schon der realität ziemlich nahe (ich muß das wissen, ich bekomme ja jeden monat die trafficabrechnung des providers)

und die reload-variante ist nicht zwingend zu realisieren: auch ein nicht endende verbindung kann einfach realisiert werden, siehe ältere phpopenchat-versionen. da wird dann quasi gestreamt. aber das spart nicht wirklich traffic.

viele grüße

mirko
 
@shc

nix gegen Dich oder PHP, ich bin jetzt mal nur von der einfachen chatmethode ausgegangen, die für die meisten Anfänger eher zu lösen ist. Klar, man kann auch ein chat in c# schreiben und laufen lassen und es gibt bestimmt auch noch 100.000 andere Möglichkeiten und mindestens 4 PHP-Möglichkeiten sind mir bekannt. Wenn Du wirklich hättest helfen wollen, dann hättest Du ja auch gerne die Grund-Funktion schreiben können. Dann hätten vieleicht auch alle anderen was davon. ;-)


Grüße aus dem Norden
 
@ nemo

ich HABE die grundfunktion geschrieben: ich bin mitentwickler des phpopenchats. das ich diese funktion HIER nicht hinschreibe hat einen einfachen grund: es gibt sie zum freien download:
http://www.ortelius.de/phpopenchat/

_vielleicht_ wäre es ja wirklich günstiger sich erstmal schlau zu machen, ob das, was man behauptet, auch wirklich zutrifft.
aussagen wie "ihr könnt ja nicht rechnen" owohl wir es ganz offensichtlich können oder "schreib doch die grundfunktion, wenn du wirklich helfen willst" helfen ganz sicher niemandem, das verwirrt doch nur.

also einfach nix übereilen, manchmal steckt mehr drin als man denkt ;-)

nix für ungut

mirko
 
@shc

OK, bevor das hier noch im Streit ausartet, jeder hat seine Meinung und seine Erfahrungen. Daran kann und will ich auch nix ändern. Was ich mit der Grundfunktion meinte, ist nicht den gesamten Quellcode sondern eher um die allgemeine funktionalität (was php wirklich kann) darzustellen. Zum anderen beruhen meine Erfahrungen zum allergrößten Teil auf ASP und das ist nach meiner Meinung nach keine Scriptsprache für Chats. Geht zwar aber eben (wenn nur als script) mit refresh. PHP ist einfacher und schneller hat aber auch so seine Grenzen. Wo die liegen weißt Du sicherlich am besten(zumindest besser als ich). Ich habe mir mal den OpenChat runtergeladen und werde ihn mir mal zugemüte führen. Vieleicht lerne ich ja auch noch etwas was ich noch nicht kenne :-)

Also nichts für ungut!

MasterNemo
 
Darf ich mich mal kurz einmischen? ;)
AFAIK ist die zentrale Funktion bei einem PHP-Streaming-Chat die flush()-Funktion. Damit wird alles bisher ausgegebene an den Browser geschickt (was ja sonst erst am Ende des Scripts passieren würde). In einer Endlosschleife wird dann z.B. jede Sekunde nachgesehen (wo diese gespeichert werden, sei jetzt mal dahingestellt), ob neue Chat-Messages da sind, die zum jeweiligen User noch nicht gesendet wurden. Wenn welche vorhanden sind, werden sie mit echo ausgegeben und dann sofort mit flush() an den Browser übertragen. Sollte mal längere Zeit keine Nachricht geschickt werden, sendet man vorsichtshalber ein "<!-- ->" o.ä., damit der Browser keinen Timeout meldet. So ist das Grundprinzip, das mir bekannt ist. Es laufen dann halt immer so viele PHP-Instanzen gleichzeitig, wie User im Chat sind.
Oder gibt´s da noch andere Möglichkeiten?
 
@reima
Ja Reima, darfst DU, ist ja schliesslich öffentlich. Aber ich sehe, daß Du verstanden hast, was ich ausdrücken wollte.

@all
Ich denke, wenn man nur darüber redet ob etwas funktioniert oder nicht, ist dem nicht geholfen, der wissen will wie. Alles andere was vorher war, war wohl eher reine Theorie. Die Praxis könnte so aussehen, muß aber net.

@shc

ich werde den phpopenchat mal dort einsetzen, wo wirklich chat-stress entsteht und euch das ergebnis dann geben (Wenn ihr damit einverstanden seid!)


OK, das wars dann schon!

MasterNemo
 
Zurück