kevinwiedener: Aktuelle Onlineuser zählen???

Hi,

wie kann ich relativ einfach die aktuellen Onlineuser zählen (mit Javascript)?

Theoretisch müsste ich eigentlich nur folgendes machen:

1.) Beim Laden der Seite eine Textdatei vom Server öffnen, in der die aktuelle Anzahl der User steht.

2.) Sobald die Seite verlassen wird (Absturz des Rechners, Beenden des Browsers, andere Seite, etc.) wird die aktuelle Zahl um eins weniger in die Textdatei geschrieben.

3.) Automatische Löschung nach 1 Stunde (falls der PC abgestürzt ist).

So oder ähnlich müsste es doch funktionieren, oder? Nur, kann mir dazu jemand den Javascript-Quellcode schreiben/geben?

Mehr als tausend Dank

Kevin

  1. Hi,

    wie kann ich relativ einfach die aktuellen Onlineuser zählen

    HTTP kennt weder den Begriff "aktuell" (in einem Universum ohne zeitliche Ausdehnung macht so etwas keinen Sinn), noch hat es eine Definition für "User". Es existiert kein Weg, eine solche Zahl zu ermitteln - genauer gesagt: Eine solche Zahl ergibt keinen Sinn. Genauso wie die Frage, was denn vor dem Urknall[1] gewesen sein mag.

    (mit Javascript)?

    Mit etwas, dass gerade mal einen einzigen Browser betrachten kann?

    document.write(1);

    Theoretisch müsste ich eigentlich nur folgendes machen:

    1.) Einen RFC für HTTP/2.0 schreiben, der ein zustand- und verbindungsbehaftetes Protokoll beschreibt.
    2.) Diesen etablieren.
    3.) Auf Browser warten, die es verwenden.
    4.) Ein zweites Internet ins Leben rufen (anders kriegst Du die früheren Browser nicht los).

    Cheatah

    [1] Falls diese Theorie realitätskonform ist.

    1. Hi,

      wie kann ich relativ einfach die aktuellen Onlineuser zählen

      HTTP kennt weder den Begriff "aktuell" (in einem Universum ohne zeitliche Ausdehnung macht so etwas keinen Sinn), noch hat es eine Definition für "User". Es existiert kein Weg, eine solche Zahl zu ermitteln - genauer gesagt: Eine solche Zahl ergibt keinen Sinn.

      Das ist natürlich Quatsch.
      Auch wenn HTTP keine Sessions kennt existiert dieses Verhalten in der wirklichen Welt durchaus. Und es gibt auch Möglichkeiten zur Abzuschätzen wieviele Leute gerade vor dem Monitor sitzen und sich eine Seite betrachten.

      1: Im Grunde wird dabei ein Timeout benutzt. D.h. jeder Zugriff (ohne Bilder und so) zählt für x-Sekunden oder Minuten als anwesend.
      2: Per Session ID, oder Cookie oder so, werden die einzelnen Benutzer identifiziert. Für die kann die echte Verweildauer ermittelt werden. Wenn im Schnitt mehr als 3~4 Seiten in Folgen angeschaut werden hat man schon eine recht gute Annäherung an die Wirklichkeit.
      3: Das Timeout darf nicht willkürlich, auf 20 Minuten oder irgendwas, gesetzt werden, sondern muss anhand des Benutzerverhaltens ermittelt werden, ev. sogar für einzelne Seiten gesondert. Das Timeout dürfte sich dabei im Bereich von unter einer Minute liegen.

      Es ist natürlich nur eine Abschätzung, aber jedenfalls ist das was man bekommt weit besser als eine Zufallszahl.

      By
      Reinhard

      1. Hi Reinhard,

        Es ist natürlich nur eine Abschätzung, aber jedenfalls ist das was man
        bekommt weit besser als eine Zufallszahl.

        das, was Du da beschrieben hast, _ist_ eine Zufallszahl.

        Wir können uns natürlich gerne über ihre Verteilungsfunktion unterhalten ...

        Viele Grüße
              Michael

        1. Hi Reinhard,

          Es ist natürlich nur eine Abschätzung, aber jedenfalls ist das was man
          bekommt weit besser als eine Zufallszahl.

          das, was Du da beschrieben hast, _ist_ eine Zufallszahl.

          Eine Zufallszahl ist eine Zufallszahl weil sie Zufällig ist.

          Wir können uns natürlich gerne über ihre Verteilungsfunktion unterhalten ...

          Existiert eine Verteilungsfunktion die anders aussieht als die einer Zufallsfunktions, hängt der Wert von den Eingabeparametern ab. In diesem Beispiel von der Anzahl der Besucher. Also ist es schon mal keine Zufallszahl mehr.

          By
          Reinhard

  2. Hallo kevin,

    abhängig von Deiner Serverumgebung läßt sich sowas z.B. mit ASP realisieren.
    Das hat dann aber nichts mit Usern, sondern mit Sessions zu tun und das Ergebnis ist eher eine grobe Schätzung, da Sessions erst nach einer definierten Zeit (z.B. 20 Minuten) beendet werden auch wenn der Benutzer nach 30 Sekunden den Browser schließt oder auf einen anderen Server wechselt.
    Sollte das Deinen Vorstellungen entsprechen könnte ich mit Code dienen.

    Schöne Grüße vom Bodensee, Thomas

    1. Hi,

      abhängig von Deiner Serverumgebung läßt sich sowas z.B. mit ASP realisieren.

      nein, lässt sich nicht. Die Zahl, die Du mit [insert serverside technology here] erhälst, hat die Aussagekraft einer Zufallszahl. Einen Grund dafür hast Du genannt; andere mögen bitte dem Forums-Archiv entnommen werden.

      Cheatah

      1. Hi,

        nein, lässt sich nicht.

        War mir schon klar, dass das Gewünschte nicht zu realisieren ist, aber vielleicht ist Kevin mit einer anderen Lösung zufrieden die zwar "knapp" vorbei, aber doch nicht ganz daneben ist.

        Thomas

        1. Hi,

          nein, lässt sich nicht.
          War mir schon klar, dass das Gewünschte nicht zu realisieren ist,

          Dir schon, anderen vielleicht nicht :-)

          aber vielleicht ist Kevin mit einer anderen Lösung zufrieden die zwar "knapp" vorbei, aber doch nicht ganz daneben ist.

          Und wem soll das einen Vorteil oder Nutzen bringen? Weder der User hat was davon, noch der Webmaster, noch der Provider - es sei denn, er kann wegen der höheren Serverlast das Account zu einem teureren Vertrag hochstufen.

          Es ist einfach Unsinn, den Gedanken eines "User-Online-Counters" fortzuführen. Nichts gegen Dich.

          Cheatah

          1. Hi,

            Und wem soll das einen Vorteil oder Nutzen bringen?

            Keine Ahnung! Wissen wir in welcher Umgebung sich Kevin bewegt (Internet, Intranet ..)?
            Ich glaube (generell gesprochen) kann man dem Fragesteller nur sagen was geht und was nicht, ihn mit Fakten anregen über die Sinnhaftigkeit seiner Idee nochmals nachzudenken aber über die Realisierung sollte der Anwender selbst entscheiden können:

            Was dem einen sin Uhl,
            ist dem andern sin Nachtigall

            Schöne Grüße vom Bodensee
            Thomas

            P.S. Grundhaltung dieser Nachricht: :-)

            1. Hi,

              Wissen wir in welcher Umgebung sich Kevin bewegt (Internet, Intranet ..)?

              Internet. Wäre es ein Intranet, wäre diese Information ähnlich relevant wie die Angabe eines sich von der Erde unterscheidenden Heimatplaneten beim Anruf eines Arztes. Soll heißen: Wird nichts gegenteiliges behauptet, muss vom Internet ausgegangen werden.

              ihn mit Fakten anregen über die Sinnhaftigkeit seiner Idee nochmals nachzudenken

              Erfahrungsgemäß denken die meisten Leute, die im Internet unsinnige "Features" verwenden wollen, nur selten über den Begriff "k3wl" hinaus. Wenn man ihne Pros und Kontras nennt und einen "Lösungs"weg aufzeigt, lesen sie die Pros, folgen dem Weg und vergessen, dass irgendein arroganter Klugscheißer ihnen davon abgeraten hat. Aus diesem Grund halte ich es für kontraproduktiv, evtl. sogar schädlich, Tipps zur Lösung zu geben - zumindest bis man selbst davon überzeugt ist, dass die vorgesehene Anwendung sinnvoll ist.

              Was dem einen sin Uhl,
              ist dem andern sin Nachtigall

              Wer sich aber eine Eule hält, weil er den Kopf lustig findet, und darüber hinaus die Hinweise ignoriert, dass das mit seiner Mäusezucht nicht kompatibel ist...

              P.S. Grundhaltung dieser Nachricht: :-)

              Grundhaltung meiner Nachricht: :-| - Sorry, mir wäre auch lieber zum Lächeln zumute, das geht aber wegen des Themas nicht.

              Cheatah