Performance AJAX- Chat

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

  • #16
    Und nochmal: Was spricht dagegen, alle "Änderungen" (also Aktualisierungen) mit einem Request zu holen?

    Wie wahsaga schon anmerkte, ist es Unsinnig, das ganze in mehrere kleine Häppchen aufzuteilen, da du Effektiv mehr Daten hin und herschickst.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #17
      Original geschrieben von jmc
      Das ist genau das, was ich meine. Bis jetzt speichere ich die User in einer SESSION und hole dann alle, welche neu sind mit einem Request.
      Warum denn in eine Session?

      Welche Nutzer gerade im Chat aktiv sind, das sind doch Daten, die für alle Nutzer in diesem Chat die gleichen sind - warum also das User-abhängig ablegen?
      und gibt es sowas wie ein Tutorial oder wo man lernen kann was genau die Performance mindert, sowie Lösungsansätze?
      Das Tutorial heisst "brain".

      Was die Performance mindern könnte, was besser sein könnte - das sollte man sich schon so in etwa selbst überlegen können, wenn man so ein System implementieren will.

      Die Frage nach einem "Tutorial" erscheint mir deshalb in diesem Kontext mehr als seltsam.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #18
        Um zu wissen was genau am meisten Aufwand verursacht nützt einem sein Gehirn alleine nicht viel... man braucht zuerst einige Informationen, die ich bis jetzt nicht habe.
        In einer Session werden sie gespeichert, da ich dann nur die Infos der neuen User schicken muss und diese können verschieden sein. Sonst müsste ich ja immer wieder alle User mitschicken.

        Kommentar


        • #19
          Original geschrieben von jmc
          Um zu wissen was genau am meisten Aufwand verursacht nützt einem sein Gehirn alleine nicht viel... man braucht zuerst einige Informationen, die ich bis jetzt nicht habe.
          Die du dir mit etwas Hirnschmalz selbst beschaffen könntest. Zumindest die Idee mit den 16 einzelnen Requests war ziemlich panne. Da hätte man auch als Anfänger drauf kommen können.

          Original geschrieben von jmc
          In einer Session werden sie gespeichert, da ich dann nur die Infos der neuen User schicken muss und diese können verschieden sein. Sonst müsste ich ja immer wieder alle User mitschicken.
          Schick halt nur die neuen Benutzer seit dem letzten Request. Das lässt sich auf verschiedene Arten ermitteln. Deine Aussage, wie du das ermittelst, ist allerdings ziemlich schwammig und lässt folglich keine Rückschlüsse auf die Effizienz zu.

          Edit: Und ich frage, geduldig wie ein Lamm, noch einmal, wieso du nicht alles in einem Request holst? Vielleicht wärst du ja nach dem dritten mal so freundlich, mir die - eigentlich doch recht simple - Frage zu beanworten.
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #20
            Original geschrieben von jmc
            In einer Session werden sie gespeichert, da ich dann nur die Infos der neuen User schicken muss und diese können verschieden sein. Sonst müsste ich ja immer wieder alle User mitschicken.
            Quark.

            Noch mal: Welche User zum Zeitpunkt X im Chat aktiv sind, ist eine Info, welche immer gleich ist, egal vom Standpunkt welchen Nutzers auch immer betrachtet.
            Ergo - Unfug, das user-spezifisch zu speichern.

            Meldet sich User Y zum Zeitpunkt Z neu im Chat an, dann schickt man ihm ein mal alle zu diesem Zeitpunkt Z aktiven Nutzer.
            Und nachfolgend nur noch die Info, welche sich abgemeldet haben, oder neu hinzugekommen sind. Dieses Delta mit der Liste abzugleichen, die ihm vorliegt, ist dann "seine" Aufgabe, also die seines Clients.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #21
              Regelmäßiges Polling hat einerseits den Nachteil, dass der Client zwischen den Polls nichts mitbekommt (Lags) und andererseits muß für jeden Poll ein TCP-Handshake gemacht werden (3 Pakete, 3x Latenzzeit), um dann ein Paket Daten zu erhalten.

              Mehr als 1 Paket ist es nur bei sehr großen Chatrooms und da sind die Lags wiederum nicht akzeptabel.

              Wenn es unbedingt über HTTP laufen muß, dann lass den Server die Verbindung zum Client aufrecht erhalten, so daß er Änderungen genau dann pushen kann, wenn sie eintreten. Dieser "endlose Download" hat sich schon vielfach bewährt. Einen vernünftigen Ajax-Massenchat hat mir noch keiner gezeigt.

              Kommentar


              • #22
                jo, wenn man dann 500 Clients im Chat hat, sind das immerhin 100 mysql anfragen an den server (wenn man alle 5 sek) abfragt.

                Ich würde an deiner stelle ein script erstellen, welches die daten aus der datenbank im 2 sek interval ausliest und in eine datei als xml struktur ablegt.

                Ein script zusätzlich, welches den usern mitteilt, falls sich der inhalt der datei verändert hat und einen refresh über ajax verursacht. Beim refreshen bekommen die user das neue file angezeigt.

                Aber PHP Chats sind allgemein ziemlich die schlechteste wahl.
                Da ist eine bessere Lösung wenn ein User nen Applet zu gesicht bekommt, welches sich per socket mit dem server verbindet.

                Kommentar


                • #23
                  @archie
                  Genau das tue ich bis jetzt

                  Kommentar


                  • #24
                    Hier vieleicht ein Link der dir vieleicht hilft

                    http://www.irishdev.com/NewsArticle.aspx?id=2166
                    http://www.chabotc.nl/phpsocketdaemon

                    OffTopic:

                    Wäre Comet denn sinnvoll für ein Chat System? Dieser Chatbot ist laut aussagen ne gute Sache, allerdings hab ich es bisher selber noch nicht getestet?

                    Welche Programmiersprache wäre für einen Chat besser?
                    Phyton oder RubyOnRails?



                    Gruss Sebastian

                    Kommentar

                    Lädt...
                    X