Feed
Google+
Contact
XING
LinkedIn
Twitter
ICQ
meebo.com

n-Besucher Online – Einfache Version

by Roland Schumacher alias GENiALi 16. Juni 2009 -- 345 words  -- 4350 mal gelesen

Seit kurzem gibt es bei mir im Blog oben Rechts den Hinweis wie viele Besucher zur Zeit bei mir Online sind. Das Ding ist aber sehr einfach gestrickt, sollte aber relativ genau sein. Wer mehr Hintergrundwissen haben möchte kann sich bei Klaus Bock dieses Posting ansehen.

Klaus geht noch weiter. Er registriert ein Java Script auf dem Client das beim schliessen des Browsers noch eine Seite aufruft die nichts anderes macht als die Session auf dem Server zu beenden. Aber spätestens nach 20 Minuten wird die Session auf dem Server so oder so mit Session_End beendet.

Die Implementation in BlogEngine.NET, kurz BE, läuft in etwa wie folgt ab.

Bei BE sind die Sessions standardmässig ausgeschaltet. Ich habe sie einfach in der Web.config wieder eingeschaltet. 

<sessionState mode="InProc" cookieName=".geniali.ch"/>

Als nächstes muss noch bemerkt werden wann eine neue Session startet und wann eine Session beendet wird. Dazu gibt es in ASP.NET zwei Events die man in der Datei global.asax implementieren muss. Bei BE sind die Zwei noch nicht drin.

void Session_Start(object sender, EventArgs e)
{
    // User-Zähler erhöhen.  
    Application.Lock();
    Application["Viewers"] = (int)Application["Viewers"] + 1;
    Application.UnLock();
}

void Session_End(object sender, EventArgs e)
{
    // User-Zähler verringern.  
    Application.Lock();
    if((int)Application["Viewers"] > 0)
    {
        Application["Viewers"] = (int)Application["Viewers"] - 1;
    }
    Application.UnLock();
}

Das Application["Viewers"] Objekt muss aber zuerst noch initialisiert werden. Zudem muss auch sichergestellt sein das beim Start des Webs diese Variable auch wieder auf 0 gestellt wird. Dies macht man im Event Application_Start.

void Application_Start(object sender, EventArgs e)
{
    // Schlüssel Viewers in der Anwendung erzeugen
    Application["Viewers"] = 0;
		...

Danach muss nur noch sicher gestellt werden das die “Viewers” auch angezeigt werden. Dazu erstellt man ein neues UserControl. Ich habe das UserControl unter meinem Theme im Ordner Controls abgelegt.
UserOnline.ascx

<%@ Control Language="C#"
 AutoEventWireup="true" 
CodeFile="UserOnline.ascx.cs" 
Inherits="themes_GENiALi_Controls_UserOnline" %>
<asp:Literal ID="litUsers" runat="server"></asp:Literal>

UserOnline.ascx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class themes_GENiALi_Controls_UserOnline 
	: System.Web.UI.UserControl
{
	protected void Page_Load(object sender, EventArgs e)
	{
		litUsers.Text = Application["Viewers"].ToString() 
			+ " Besucher online";
	}
}

Das UserControl kann man einfach auf die site.master des Theme ziehen und dort platzieren. Mit CSS kann die Anzeige noch formatiert und ausgerichtet werden.

Unter dem Strich sollte es in etwa so aussehen. :-)

8 Besucher Online

kick it on dotnet-kicks.de

Tags: , , ,

Blog | Entwicklung

Kommentare (5) -

Sarah
Sarah Switzerland
17.06.2009 16:10:58 #

Kennne ich doch noch vom klassischen ASP. Und wie lange ist die Session bei dir eingestellt?

Antwort

GENiALi
GENiALi Switzerland
17.06.2009 16:28:39 #

So viel ich weiss 20 Minuten. Man sieht also in etwa wie viele User in den letzten 20 Minuten auf meinem Blog waren.
Bin immer wieder ab der Zahl erstaunt. Ich dachte dir käme nie über 5 raus. Ist aber fast immer im zwei stelligen Bereich.

Antwort

Sarah
Sarah Switzerland
17.06.2009 16:31:16 #

RSS Reader... die klopfen deine Seite ja in bestimmten intervallen ab, dann noch ein paar Suchmaschinenbots usw.

Antwort

GENiALi
GENiALi Switzerland
17.06.2009 17:02:05 #

RSS Reader sollten aber via Feedburner gehen.
Die Suchmaschienen ... hmmm ... an die habe ich nicht gedacht.
Das sind ja ganz treue Besucher. Smile

Antwort

Koh Phangan Hotels
Koh Phangan Hotels Germany
24.02.2010 22:46:47 #

Mahlzeit
Hervorragender Post. Da hat mich Google wie schon so oft an einen super Blog geschickt.
Viele Grüsse aus Phangan

Antwort

Pingbacks and trackbacks (1)+

Kommentar schreiben

  Country flag

biuquote
  • Kommentar
  • Live Vorschau
Loading

Statistik

Gesamte Posts: 1018
Dieses Jahr: 0
Diesen Monat: 0
Diese Woche: 0
Kommentare: 922
Total Bewertungen: 84
Ø Bewertung: 4,37
Meisten Kommentare
Google+ ... (28)
Beste Ø Bewertung
Tryton - Teil 6 - Installation ... (5)
Meiste Bewertungen
Windows 7 und die ersten Erfah ... (5)

Buttons

Benutzerprofil von GENiALi connection speed test network connection Bloggeramt.de Slug.ch Blog Verzeichnis und Blog Webkatalog Schumacher Roland Seitwert Valid XHTML 1.0 Transitional