Hallo, ihr da draußen. Ich möchte gerne wissen, wie man einen einfachen chatbereich, z.B. wie hier bei nickles in eine eigene homepage einbindet.
Homepage selbermachen 7.851 Themen, 35.616 Beiträge
meiner nicht ;o)...
problem beim chat ist der load den manche scripte erzeugen.
gerade perl-scripte und php scripte sind da oft nicht gerade
vorbildlich, da die seiten automatisch in gewissen intervallen
reloadet werden müssen. der grund ist ganz einfach:
der client kann nicht wissen wann auf dem server eine neue
nachricht eingegangen ist und muß auf verdacht laden. wenn man
dann noch auf javascript verzichten will/muss dann bleibt nichts
übrig, als die komplette seite zu laden, somit erzeugen schon 10
user eine last von ca 120 usern/minute (bei einem refresh von 5s).
bei einer durchschnittlichen größe des chatfensters von 5kb werden
in 10 minuten schon ca. 7MB für 10 user übertragen (man darf die
protokolldaten nicht vergessen, da ja nicht nur die reinen 5kb der
seite über das netzwerkinterface laufen). wenn man noch die connects
zur datenbank hinzurechnet kann man sich vorstellen, daß ein server
so schon recht schnell in schwierigkeiten kommen kann, da er ja auch
noch andere seiten ausliefern muß, ganz zu schweigen vom traffic, der
auf einen user zukommen kann. mal angenommen, daß ca. 5 stunden am tag
durchschnittlich 10 user im chat sind und das an 20 tagen im monat, so
kommt man nur für den chat schon mal auf 4GB (nein, ich hab mich nicht
verschrieben, es sind ca 4GigaByte).
geht man jetzt mal davon aus, daß man kombiniertes serverseitiges und
clientseitiges scripting nutzt, so könnte man den chat folgendermaßen
aufbauen:
der server erzeugt bei neu eingegangener nachricht eine textdatei auf
dem server mit der neuen zeile. auf dem client läuft ein script
(javascript,VB, flash) das mittels cross-site-scripting in gewissen
zeitabständen nachschaut, ob eine neue textdatei vorhanden ist, diese
wird dann vom script geholt und mittels DHTML in das bestehende
fenster geschrieben. man verringert so zwar nicht die netzwerklast
der connects, aber den traffic ungemein. nehmen wir mal wieder die 10
user von oben an und nehmen an, daß eine textdatei durchschnittlich
aus 100 zeichen besteht. dann wären wir bei weniger als 1kb pro
textdatei. somit hätten wir den traffic um mehr als 80% gesenkt.
wenn man jetzt noch weiter geht und das ganze mittels applet auf
dem client löst, so kann man sogar die connects herunterschrauben.
der client lauscht über das applet auf einem bestimmten port auf ein
signal des servers, das neue nachrichten eingegangen sind, erst dann
läd er die reinen textdaten und schriebt sie in das chatfenster. die
hauptarbeit wird somit auf dem client erledigt. so würde sich traffic
und last ohne weiteres auf 20% und weniger herunterschrauben lassen.
ps: aber es gibt ja schließlich leute, die um applets und scripte auf
ihrem rechner einen riesen bogen machen, da sie ja sooo gefährlich
sind, auch wenn sie ansonsten bedenkenlos jedes tool aus zweifelhaften
quellen installieren oder ihre mails mit outlook verwalten und die
vorschau immer schön aktiv haben. ;o)