Streaming Chat

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Streaming Chat

    Hallo Forum!

    Ich würde gerne einen reinen PHP-Chat schreiben. Allerdings würde ich gerne einen streaming chat schreiben, also keinen mit meta-refresh. Nun habe ich mich mal ein wenig Im lieben weiten Internet umgeschaut und zwei gegensätzliche Meinungen zu hören bekommen:
    1. es geht.
    2. es geht auf keinen Fall
    Nun bin ich ein wenig verunsichert...Was ist denn Eure Meinung dazu ? Die eine Möglichkeit wäre eine sich selbst aufrufende Funktion, aber das halte ich für gefährlich (Speicherbelegung) Eine andere Möglichkeit wäre eine Endlosschleife, aber die macht die Problematik auch nicht wett...
    Kann mir einer von Euch einen Rat geben wie ich das Problem angehen könnte/sollte?

    Über ein paar Tips wäre ich Euch mehr als nur dankbar!
    Viele Grüße
    rince

  • #2
    ich denke das geht nicht, das problem ist dass der Webserver erst nach Beendigung des Scripts die Seite absendet, damit fallen deine methoden weg, ich sehe nur eine möglichkeit , naja vielleicht, ich weis nicht ob das geht Also man könnte das Script eventuell dazu bringen eine Seite sofort an alle zu senden sobald jemand was neues gepostet hat, ob das allerdings so funzt ist mir schleierhaft. Ich weiss nicht ob das möglich ist denn ich hab ka. ob Browser einfach so unaufgefordert Seiten annehmen

    Aber eigentlich würde ich sagen mit reinem php ist da kein Staat zu machen

    Kommentar


    • #3
      Hallo Joel,

      also ich kannja mal "ablassen" was ich mir bisher so vorgestellt habe ... Die Eingabe der User wird in eine Datei auf dem Server geschrieben. Diese Datei wird von einer Funktion bearbeitet, die nun folgendes prüft : Ist die Datei größer als beim letzten Test? Wenn ja, wo stand der filepointer beim letzten mal, dann Ausgabe per fpassthrough() (gibt alles von einer Position eines filepointers bis zum Ende der Datei sofort aus). Abspeichern der Dateigröße und der Position des Filepointers...
      Soweit so gut ... aber wie bekomme ich nun den Server dazu diese Funktion entsprechend oft anzustoßen ?

      Vielleicht hat das meine Gedanken etwas klarer gemacht

      Viele Grüße
      rince

      Kommentar


      • #4
        Original geschrieben von JoelH
        , naja vielleicht, ich weis nicht ob das geht Also man könnte das Script eventuell dazu bringen eine Seite sofort an alle zu senden sobald jemand was neues gepostet hat, ob das allerdings so funzt ist mir schleierhaft. Ich weiss nicht ob das möglich ist denn ich hab ka. ob Browser einfach so unaufgefordert Seiten annehmen
        Original geschrieben von rince
        Soweit so gut ... aber wie bekomme ich nun den Server dazu diese Funktion entsprechend oft anzustoßen ?

        Sagte ich doch bereits !

        Kommentar


        • #5
          Also ich kann dazu nur sagen das es geht.
          Ich hatte selbst einen Streaming Chat mit PHP am laufen, kann aber nur davon abraten, da extrem viele Ressourcen verbraucht werden. Der Chat hatte pro User ca. 4,5 - 7 MB Spreicher belegt + Speicher der für den Server selbst benötigt wurde + Prozessorleistung war das einfach zuviel.
          Des weiteren darf kein timeout für das Ausführen von PHP-Scripts gesetzt sein.

          Ich hatte um es kurz zu machen eine unendliche Schleife mit while laufen lassen. Und es wurden die Daten auch vor Beendigung des Scripts ausgegeben.

          Ich habe übrigens auch keinen Provider gefunden der ein solches Script hätte laufen lassen.
          Kaffi
          Errare humanum est

          W32.Schmalle.H@mm

          Kommentar


          • #6
            Der Resourcenverbrauch ist enorm, egal wie manns anstellt. [streaming]
            also
            2. es geht auf keinen Fall
            -solange du keinen eigenen server hast den du quälen willst *G*
            • Zukunftsorientiert
            • Fortschrittlich
            • Innovativ
            • PHP

            email..:matiaz@gmx.de:..


            chat..:BB4U-Community:..

            Kommentar


            • #7
              ein paar überlegungen

              hallo zusammen

              ïch habe mich ebenfalls schon länger damit beschäftigt.
              für einen chat gibt es verschiedene probleme. ein paar:

              - server belastung
              - spezieller client nötig
              - verwendete ports (firewall,proxies)
              - traffic

              ein paar ideen wären:

              php chat server als daemon (socket funktionen) auf http port 80. datenhaltung in shared memory, (db oder files nur für usermanagement). der server kommuniziert mit einem flash client (flash ist weiter verbreitet als java, und kann mit den ming funktionen generiert werden) in xml (flash5).

              das refreshen wird vom client aus gesteuert der mit dem server spricht. da das ganze in flash wäre, sind für den chatter keine lästigen http refreshs wie in einem html basierten chat ersichtlich.

              mittels xml basierter kommunikation, wäre es möglich eine chatML zu machen ;-)

              nur mal so zum nachdenken

              greets

              js
              ------------------------
              http://swisswebgroup.com
              ------------------------

              Kommentar


              • #8
                Der Thread ist ja schon ein wenig älter und ich wollt mal wissen ob sich neues ergeben hat in sachen Streaming PHP CHat?!?

                Ich will auch gerne einen Chat programmieren nur leider find ich dazu keine Hilfen wie ich sowas anzufangen habe. Und auch wie man einen Daemon schreibt, bzw was der können muss ist mir noch gänzlich fremd.

                Weiss jemand rat oder eine Seite wo ich diesen finden kann?
                Ich hab mir schonmal Mazens PHP CHat angeschaut der auch gänzlich in PHP geschrieben ist. Nur der Daemon beinhaltet alte funktionen die seit 4.1.0 aus PHP entfernt wurden und jetzt halt nicht mehr funktionieren.

                Brauche HILFE!!!!!!!

                Gruss NiK

                Kommentar

                Lädt...
                X