بدست آوردن افراد آنلاین در سایت

در این مقاله با نحوه بدست آوردن تعداد افراد آنلاین در سایت آشنا خواهید شد

بدست آوردن افراد آنلاین در سایت

ابتدا یک پروزه ایجاد میکنیم

سپس رو نام پروژه کلیک راست گزینه Add و بعد Add News Item را میزنیم و یک فایل Global Application Classs اضافه میکنیم

Global.asax

در رویداد Application_Start یک کالکشن Application با نام TotalOnlineUsers و مقدار 0 ایجاد میکنیم

   void Application_Start(object sender, EventArgs e)   
    {  
        // Code that runs on application startup  
        Application["TotalOnlineUsers"] = 0;  
    }   

سپس در رویداد Session_Start که به اضای ورود کاربران فرذاخوانی میشود یک واحد به TotalOnlineUsers اضافه میکنیم

    void Session_Start(object sender, EventArgs e)   
    {  
        // Code that runs when a new session is started  
        Application.Lock();  
        Application["TotalOnlineUsers"] = (int)Application["TotalOnlineUsers"] + 1;  
        Application.UnLock();  
    }   

در رویداد Session_End یک واحد کم میکنیم

   void Session_End(object sender, EventArgs e)   
    {  
        // Code that runs when a session ends.   
        // Note: The Session_End event is raised only when the sessionstate mode  
        // is set to InProc in the Web.config file. If session mode is set to StateServer   
        // or SQLServer, the event is not raised.  
        Application.Lock();  
        Application["TotalOnlineUsers"] = (int)Application["TotalOnlineUsers"] - 1;  
        Application.UnLock();  
    }   

در Web.Config ستس کردن کوکی برای سشن را غیر فعال میکنیم و زمان پیشفرض انقضای سشن را 20 دقیقه قرار میدیم


    <system.web>  
    <sessionState mode="InProc" cookieless="false" timeout="20"></sessionState>  
    </system.web>  

و سپس نمایش تعداد افراد آنلاین

یک صفحه ایجاد میکنیم


    <form id="form1" runat="server">  
        <div>  
        <p>No. of Online Users:<asp:Label ID="Label1" runat="server" Text="Label" ForeColor="#CC0000"></asp:Label></p>  
        </div>  
    </form>  

و در کد و رویداد Load کد زیر را مینویسیم


    protected void Page_Load(object sender, EventArgs e)  
    {  
            Label1.Text = Application["TotalOnlineUsers"].ToString();  
    }  

فایل های ضمیمه