tox: Server Push im Intranet möglich?

Hallo,

ich möchte so etwas wie einen HTTP-Push realisieren. Mir stehen PHP, Javascript (AJAX) und MySQL zur Verfügung. Der Push ist für ein Intranet mit derzeit 9 Clients gedacht.

Erreicht werden soll, dass wenn einer der Clients einen Eintrag in der Datenbank macht, dass alle anderen diesen Eintrag sofort sehen können. Vermieden werden soll, dass die Clients ständig Anfragen an den Server schicken.

Mein Ansatz wäre, dass beim Aufruf der Seite ein XMLHttpRequest() an den Server geschickt wird. Dieser beantwortet diesen aber erst, wenn ein Eintrag in der DB gemacht wurde. Diese Einträge werden ebenfalls per XMLHttpRequest() gemacht. Ist das alles eine Milchmädchen-Rechnung oder geht das? Und wie?

Gruß
tox

  1. Hello,

    wenn es Intranet ist, muss dann übrhaupt mit dem Browser gearbeitetr werden oder könntest Du nicht besser einen Client mit verbindungsorientiertem Protokoll gebrauchen?

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Sorry, aber Desktopprogrammierung kann ich gar nich. Dank Dir trotzdem für den Input.

      1. Hello,

        Sorry, aber Desktopprogrammierung kann ich gar nich. Dank Dir trotzdem für den Input.

        Je nach Datenbank gibt es dafür auch fertige Requester mit GUI.
        Die werden dann für einfache Fälle nur parametriesiert. Das ist nicht schwieriger, als eine HTML-Seite zu bauen. Den Rest macht der Requester ganz alleine.

        Das ist dann aber schneller, sicherer, nachvollziehbarer und benötigt weniger Speicherplatz, als eine Browser/API/DBMS-Lösung

        Ein harzliches Glückauf

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
    2. Hi!

      verbindungsorientiertem Protokoll gebrauchen?

      Klar: TCP;)

      au relire

      sven aus M.

      1. Hello,

        verbindungsorientiertem Protokoll gebrauchen?
        Klar: TCP;)

        Und Zustand ... ?

        Ein harzliches Glückauf

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Salut!

          Hello,

          verbindungsorientiertem Protokoll gebrauchen?
          Klar: TCP;)

          Und Zustand ... ?

          D'accord!
          Ich sehe die letzte Diskussion zum Thema hat gefruchtet;)

          au relire

          Sven aus M.

  2. Hallo!

    Mein Ansatz wäre, dass beim Aufruf der Seite ein XMLHttpRequest() an den Server geschickt wird. Dieser beantwortet diesen aber erst, wenn ein Eintrag in der DB gemacht wurde.

    Der Client wartet aber nicht unendlich. Der wird mit einem Timeout abbrechen.
    Ich würde sagen, dein Vorhaben läßt sich nicht ralisieren.
    HTTP ist nun mal ein stateless Protokoll.
    Die Clients müssen pollen.

    mfg
      frafu

    1. Hallo,

      Ich würde sagen, dein Vorhaben läßt sich nicht ralisieren.
      HTTP ist nun mal ein stateless Protokoll.
      Die Clients müssen pollen.

      Das stimmt so nicht. Mag sein, dass es im PHP-Umfeld kein entsprechendes Framework gibt. Für die Java-Welt gibt es DWR, das bietet Push an - daneben auch Polling und Piggyback.

      Sollte also auch die Java-Plattform zur Verfügung stehen, bietet sich DWR an.

      Ciao

      1. Hallo!

        Die Clients müssen pollen.
        Das stimmt so nicht. Mag sein, dass es im PHP-Umfeld kein entsprechendes Framework gibt. Für die Java-Welt gibt es DWR, das bietet Push an - daneben auch Polling und Piggyback.

        Sollte also auch die Java-Plattform zur Verfügung stehen, bietet sich DWR an.

        Danke für den Link. Das kannte ich nicht. Muss ich mir bei Gelegenheit mal näher anschauen. Aber so wie es sich mir präsentiert, sind auch Comet und Piggyback im Prinzip Pollingmechanismen. Comet verzögert die Antwort so lange wie möglich und Piggyback wartet auf den nächsten Request des Clients. Oder hab ich das falsch verstanden?
        Schaut aber prinzipell interessant aus.

        mfg
          frafu

        1. Hallo,

          so wie es sich mir präsentiert, sind auch Comet und Piggyback im Prinzip Pollingmechanismen. Comet verzögert die Antwort so lange wie möglich und Piggyback wartet auf den nächsten Request des Clients. Oder hab ich das falsch verstanden?
          Schaut aber prinzipell interessant aus.

          Im Prinzip ist Comet insofern auch Polling, als dass die Verbindung erst einmal per Request erfolgen muss, um den Response dann stark verzögert zu senden. Mit dem klassischen Verständnis von Polling hat das aus meiner Sicht allerdings nichts mehr zu tun. Eine geeignete Serversoftware wie bspw. Jetty unterstützt das Comet-Prinzip und kann offenbar mit sehr vielen gleichzeitig geöffnete Verbindungen gut umgehen. Dadurch wird Comet interessant und kann wohl auch in größeren Szenarien mit mehreren Tausend gleichzeitigen Usern bestehen.

          Piggyback hast Du auch richtig verstanden. Das hat aber nun wirklich nichts mit Polling zu tun, da einfach nur an die nächste Response zusätzlich noch die zu transportierende Information angehängt wird. Es wird also nicht gepollt.

          Ciao