Beste Methode für "Real-Time-Anwendungen"

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

  • Beste Methode für "Real-Time-Anwendungen"

    Hallo,

    ich plane gerade eine Arbeitsplatte zu erstellen, auf der mehrere Leute gleichzeitig arbeiten können. D.h. jeder muss zu jeder Zeit die Änderungen der anderen mitgeteilt bekommen (eigentlich das gleiche Prinzip wie ein Chat, nur abstrakter).
    Über die Umsetzung bin ich mir jedoch unklar, wie ich das Aktualisieren am besten erledige. Bisher habe ich drei Ansätze:
    - Per AJAX wird in einem Intervall nachgefragt, ob es etwas neues gibt --> nicht unbedingt Real Time und hoher Overload
    - Eine PHP-Anwendung "ewig" laden, die immer nur etwas ausspuckt, wenn es was neues gibt --> nicht sehr performant bei vielen Benutzern, oder?
    - Meine bisheriger Favorit: Die Socket-Funktionen von Flash benutzen, um mit einem Server über spezielle Ports zu kommunizieren, wobei der Server im Prinzip alles verwaltet und die Daten an die entsprechenden Clients weiterschickt (in PHP oder besser in C geschrieben). Flash kommuniziert dabei mit JavaScript, das sich um die Ausgabe der Daten kümmert.

    Was meint ihr dazu? Welche Methode würdet ihr nehmen, oder hättet ihr noch etwas besseres vorzuschlagen? Java kommt leider nicht in Frage.

    Danke und Gruß

  • #2
    Was ist denn eine Arbeitsplatte? Kenn das nur in Verbindung mit meinem Besuch im Möbelhaus bezüglich einer neuen Küche.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Hallo,

      damit meine ich das gleiche Prinzip wie bei einem Chat. Ich sehe sofort, wenn andere User etwas relevantes machen (in dem Fall eine Nachricht senden) und meine eigenen Aktivitäten (Nachrichten) werden sofort an alle Beteiligten propagiert. Das ganze natürlich ohne Refreshen der Seite etc.

      Gruß

      Kommentar


      • #4
        Google Docs?

        Kommentar


        • #5
          Hm Google Docs ist aber statischer, oder? Also ich sehe nicht sofort ohne Refreshen der Seite, was mein Kollege geändert hat, oder doch? Falls ja meine ich das gleiche Prinzip

          Kommentar


          • #6
            Okay, ich habe gerade gesehen, dass bei Google Docs die Änderungen auch so übernommen werden, jedoch mit einer Verzögerung von gut 5 Sekunden. Also schätze ich, dass dort per AJAX eine Datei gepollt wird, oder?

            Kommentar


            • #7
              Vermute ja.

              Ein mitschneiden der Header verrät es dir.

              Kommentar


              • #8
                Die Ajax-Lösung ist wohl die einfachste.
                Ein Skript ewig laufen zu lassen, ich weiß nicht, da ist PHP nicht unbedingt für gemacht.
                Und die Lösung über Flash ist wohl um einiges komplexer, wird für den Benutzer aber kaum sichtbare Änderungen bringen, sondern sogar noch zusätzlich einen Flashplayer voraussetzen (nicht unbedingt kritisch, hat eh fast jeder).

                Kommentar


                • #9
                  Jub okay, wenn man jetzt aber mal an Effizienz denkt, ist da nicht die Flash Lösung die beste? Ich möchte das ganze so Real Time wie möglich halten, d.h. ich bräuchte schon ein Poll-Intervall von maximal einer Sekunde. D.h. jede Sekunde wird von jedem Client eine PHP-Seite geladen, die auch auf die Datenbank zugreifen muss. Wenn das ganze jedoch über Sockets läuft gibt es nur Traffic, wenn auch wirklich etwas neues ansteht, es ist so Echtzeit wie möglich (erst recht wenn man UDP statt TCP nimmt, aber dann bleib ich doch lieber bei TCP ) und es müssen keine Anfragen an die Datenbank gestellt werden. Oder mache ich dabei einen Denkfehler? Außer in Flash gibt es ja keine client-seitige Socket-Funktionen fürs Web, oder?

                  Kommentar


                  • #10
                    Also ajax ist da die richtige Wahl.

                    Würde das so machen das es keine Dateien sondern Datenbankeinträge sind und diese abgerufen werden.

                    Bei optimalem Einsatz ist das auch schön performant wenn man es nicht mit JS-Effekten etc. übertreibt

                    P.S.: Falls das ein Teil einer IDE werden soll, kannst du dich vielleicht bei mir melden? Habe nämlich vor eine webbasierte IDE auf opensource basis zu machen.

                    Kommentar

                    Lädt...
                    X