Curt: Chat

Hab fuer die WG ein kleinen lokalen Chat mit CGI geschriben. Das ganze kommt mir aber etwas arg umstaendlich vor, vielleicht kann mir jemand noch anregungen geben wie man so etwas besser macht, da ich demnaechst einen Chat zu einem Thema im Internet anbieten will.

o.k. folgendes Passiert.

zuerts logge ich mich ein (Formular->CGI)
nun bekomme ich eine Frameset generiert.
unten ein frame mit einer Textbox.
Oben stehen die eingegebenen Saetze.
Wenn ich nun etwas in die Textbox eingebe wird dieses
an ein CGI-Skript geschickt welches die eingabe zusammen mit dem namen in eine Textdatei speichert.

das obere frame hat ein refresh nach 5 sekunden, d.h.
es ruft automatisch alle 5 sekunden ein skript auf, das
den inhalt der textdatei auf dem bildschirm anzeigt.

was mich daran stoert ist, das auch wenn keine neue nachricht da ist findet datentransfer statt. da der Client ja nicht weiss wann etwas geschrieben wurde,
wie kann man das noch machen

danke im voraus

Curt

  1. das obere frame hat ein refresh nach 5 sekunden, d.h.
    es ruft automatisch alle 5 sekunden ein skript auf, das
    den inhalt der textdatei auf dem bildschirm anzeigt.
    was mich daran stoert ist, das auch wenn keine neue nachricht da ist findet datentransfer statt. da der Client ja nicht weiss wann etwas geschrieben wurde,

    Nur als Idee - die Details habe ich noch nicht ausprobiert: Der Browser fragt doch den Webserver ab und zu, ob er eine Seite wirklich neu laden soll oder ob seine gecachete Version noch reicht. Soviel ich weiß, sendet der Server ihm eine entsprechende http-Nachricht zurück. Wenn Du den Webserver davon überzeugen kannst, daß er dem Browser sagen soll, der Cache-Inhalt sei noch okay, dann kriegst Du eine Menge Last weg.

    Eine Möglichkeit dazu könnte es sein, als Chat-Client nicht via CGI das Dokument mit dem aktuellen Inhalt anzuzeigen, sondern dieses einfach als statisches Dokument auf dem Server zu halten. Wie *das* zu cachen ist, das weiß der Browser!
    Der Trick muß es dann sein, daß die CGI-Anwendung zum "sprechen" dieses Dokument aktualisiert. Die allfälligen Synchonisationsprobleme sind hoffenlich bekannt - wenn zwei Leute gleichzeitig sprechen wollen, kracht es womöglich.
    Alternative: Jeder Teilnehmer "spricht" in eine eigene, temporäre Datei (login mit name?), und ein Dauer-Job generiert aus diesen Dateien periodisch (alle 5 Sekunden?) die HTML-Datei, welche den aktuellen "Gesprächsstand" anzeigt ...

  2. Hallo Curt

    Hab fuer die WG ein kleinen lokalen Chat mit CGI geschriben. Das ganze kommt mir aber etwas arg umstaendlich vor, vielleicht kann mir jemand noch anregungen geben wie man so etwas besser macht, da ich demnaechst einen Chat zu einem Thema im Internet anbieten will.

    <applet code="Chat.class"
    codebase="http://www.leahcim.com/irc/"
    align="middle" width="580" height="335">
    <param name="Language" value="deutsch_du">
    <param name="Channel" value="#Curt">
    <param name="FontSize" value="14">
    <param name="ABackColor" value="C0C0C0">
    <param name="TBackColor" value="FFFFFF">
    <param name="TForeColor" value="000000">
    <param name="ScrollColor" value="C0C0C0">
    </applet>

    Mit diesen paar Zeilen HTML kannst du die Lebensgwohnheiten von Menschen nachhaltiger beeinflussen als durch alles andere auf der Welt - der Code ist so heiss, dass er eigentlich verboten gehoert <g>.

    viele Gruesse
      Stefan Muenz

    1. Hallo Curt

      Hab fuer die WG ein kleinen lokalen Chat mit CGI geschriben. Das ganze kommt mir aber etwas arg umstaendlich vor, vielleicht kann mir jemand noch anregungen geben wie man so etwas besser macht, da ich demnaechst einen Chat zu einem Thema im Internet anbieten will.

      <applet code="Chat.class"
      codebase="http://www.leahcim.com/irc/"
      align="middle" width="580" height="335">
      <param name="Language" value="deutsch_du">
      <param name="Channel" value="#Curt">
      <param name="FontSize" value="14">
      <param name="ABackColor" value="C0C0C0">
      <param name="TBackColor" value="FFFFFF">
      <param name="TForeColor" value="000000">
      <param name="ScrollColor" value="C0C0C0">
      </applet>

      Mit diesen paar Zeilen HTML kannst du die Lebensgwohnheiten von Menschen nachhaltiger beeinflussen als durch alles andere auf der Welt - der Code ist so heiss, dass er eigentlich verboten gehoert <g>.

      viele Gruesse
        Stefan Muenz

      Und dann geht die WG online um zu chatten? *g*

      Aber verboten gehört dieser Chat tatsächlich (und ich bin ein regelmäßiger Chatter auf Deinem Chat, Stefan).
      Aber...
      Man wird dauernd rausgeschmissen, und für uns HTMLler ziemlich wichtig ist der URL Austausch im Chat, das posten von URLs klappt zwar, aber ein copy ist nicht möglich...
      Unter http://www.command-o.com/products/chatpro/trial.html gibt's nen wunderschönen HTML basierten chat umsonst (keine Zeit-Limit-Version, benötigt CGI), und unter http://www.ws64.com/cgi-bin/chatpro.pl gibt's ne Version die ich mal an meine Bedürfnisse angepasst habe :)

      Nichts für ungut, aber ich mag keine Java-Chats...
      (kann aber auch nicht auf Deinen Chat verzichten, wegen Antje und Co *g*)

      Bye
      Wolfgang