Ankündigung

Einklappen
Keine Ankündigung bisher.

Polling oder gibt es eine bessere Variante?

Einklappen

Neue Werbung 2019

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

  • Polling oder gibt es eine bessere Variante?

    Hallo,

    Folgendes Szenario: Benutzer bekommen regelmäßig neue Bilder zugeschickt (1sec - nMin). Das ganze ist eine Intranetanwendung deswegen kann die Sicherheit vernachlässigt werden.

    Ich habe mir überlegt via Javascript auf einen Webservice oder eine Datenbank zu pollen, bin davon aber noch nicht wirklich überzeugt. Gibt es eine Möglichkeit den Client von aussen ein Event zu schicken oder ähnliches? Was ist eurer Meinung die beste Lösung? Wie schaut es aus mit HTTP Streaming jemand etwaige Erfahrungen mit gemacht?

  • #2
    Naja mit "normalen" Mitteln wirst du das nicht hinbekommen. Das HTTP Protokoll arbeitet eben so das der Client eine Anfrage stellt und diese beantwortet wird, danach hat der Server keine Ahnung mehr ob der Client noch existiert.

    Aber es gibt http://de.wikipedia.org/wiki/WebSockets. Diese sind zwar nur in ganz neuen Browsern verfügbar (Firefox 4 Beta, Chrome, Opera 10.70) aber diese könnten vlt. nützlich sein.

    Beitrag editiert:
    Ich weiß allerdings nicht ob man das für Bilder überhaupt nutzen kann oder ob das eher für Textdaten genutzt wird.

    Kommentar


    • #3
      Dank dir. Das hört sich schon deutlich vielversprechender an als Polling Hat den Vorteil das die jenigen die die App nutzen wollen auch gleich einen neuen Browser bekommen.

      Würde mich aber ueber weitere Erfahrungsberichte oder Vorschläge freuen. Bis dahin versuch ich mal ein Beispiel zu realisieren.

      edit: Sollte kein Problem sein das Bild umzuwandeln und als XML zu versenden. Denke auch das es so auf Clientseite wieder zusammengebaut werden kann. Derzeit ist es eine C# Client/Server Apllikation daher sind viele Teile schon vorhanden. Ich bin zuversichtlich

      Kommentar


      • #4
        Das Bild an sich wird doch nicht geschickt, sondern der Link dort hin, oder nicht?

        Kommentar


        • #5
          Naja er möchte ja gerade die Daten selbst an den Client schicken und keinen Link (sonst könnte er auch Clientseitig per JS die URL erzeugen, wäre dann aber auch Polling.

          Kommentar


          • #6
            Dann wäre es doch Quatsch, daraus eine Browser-Applikation zu machen.. Wieso sollte er unbedingt per XML eine binäre Datei schicken und wie will er (vielleicht mit canvas) wieder ein Bild daraus machen. Und vor allem: Wozu? Das Bild ist im Browser, ob irgendwie per JS generiert oder ganz normal per img-Tag angezeigt.

            Allerdings wäre es kein Polling, da ja die Information, dass ein neues Bild vorhanden ist, vom Server kommt.

            Kommentar


            • #7
              Ja das will er ja, er möchte im Browser immer wieder ein neues Bild anzeigen sobald eines vorhanden ist, der Server soll also pushen. Warum, keine Ahnung

              Kommentar


              • #8
                Ja, aber das Bild an sich wird doch nicht gepusht Ein Bild auf diese Art und Weise in den Browser zu bekommen, wäre doch völlig verquer.. Statt dessen denke ich, meint er, dass der Server den Browser anspricht:" Hier, neues Bild vorhanden" und ihm die URL gibt und der Browser bindet das dann per js ein.

                Kommentar


                • #9
                  Mh stimmt wäre auch ne Möglichkeit. Aber das Bild könnte ja dann trotzdem gleich mitgeschickt werden ... ist halt bissl Frage des Systems.

                  Kommentar


                  • #10
                    Ich würde Dir Spontan WebSockets empfehlen. Vor geraumer Zeit hatte ich Selbst eine kleine Applikation gebastelt, aber auf Basis eines PHP WebSockets Service. Ich habe ihn eine kleine Chat-Demo genutzt, und paar kleine Spielereien ausprobiert.

                    Kommentar


                    • #11
                      Hi...ich habe vor einiger Zeit ein kleines Javascript mmorpg gemacht. es bekommt die Informationen auch vom Server gepusht...ich hätte wirklich Interesse meinen alten Kern zu überarbeiten...so arg viel Code benötigt das Gerüst auch nicht. Wenn du Lust hast können wir das ja zusammen machen und dann kannst du den für deinen Anwendungsfall benutzen...er arbeitet je nach dem mit welchem Browser der Zugriff erfolgt mit xhr long polling oder der xhr streaming Technik, bei der die HTTP Verbindung offen gehalten wird und der Server je nach Ereignis neue Daten an den Browser sendet. Der Nachteil is halt, dass du damit in der Tat kein Bild übertragen kannst. Sondern höchstens die URL zu einem Bild. Denn die Daten aus dem Stream enthalten JS-Anweisungen aber erlauben denke ich nicht die Übertragung von anderen Daten. Du könntest zwar theoretisch ein Bild pushen. Aber welche Javascriptfunktion soll das dann verarbeiten? Also du merkst schon: Text und Strings kann man sicher ohne Probleme pushen. Aber mit binärdaten is das nicht so einfach.

                      Kommentar


                      • #12
                        Naja man könnte das Bild schon base64 codiert in den <img> Tag schreiben, da brauchst du keine Binärdaten dafür.

                        Kommentar


                        • #13
                          Mag ja sein Aber warum sollte man ein Bild komplett an den Browser senden wollen. Davon hat niemand einen Mehrwert, außerdem kann das Bild nicht mehr gecacht werden.

                          Kommentar


                          • #14
                            Najo "komplett" wird es sowieso immer an den Browser geschickt. Und wenn er es ständig aktualisieren will dann möchte er sicherlich das Bild auch nicht cachen.

                            Kommentar


                            • #15
                              Najo "komplett" wird es sowieso immer an den Browser geschickt.
                              Nicht, wenn der Browser es cacht.
                              Und wenn er es ständig aktualisieren will dann möchte er sicherlich das Bild auch nicht cachen.
                              Er will ja immer ein neues schicken.

                              Kommentar

                              Lädt...
                              X