برای نمایش تعداد کاربران آنلاین در یک سایت با ASP.NET Web Forms، میتوانید از روشهای مختلفی استفاده کنید. در این راهنما، یک پیادهسازی ساده از شمارش کاربران آنلاین ارائه میدهم که از Session برای ردیابی کاربران و یک Timer برای بهروزرسانی مداوم اطلاعات استفاده میکند.
### مراحل پیادهسازی
#### 1. طراحی پایگاه داده (اختیاری)
اگر میخواهید تعداد کاربران آنلاین را در یک پایگاه داده ذخیره کنید، میتوانید یک جدول ساده به نام `OnlineUsers` ایجاد کنید، اما در این مثال، از متغیرهای سراسری و Session استفاده میکنیم.
#### 2. ایجاد پروژه ASP.NET Web Forms
یک پروژه جدید ASP.NET Web Forms در Visual Studio ایجاد کنید.
#### 3. ایجاد صفحه اصلی `Default.aspx`
در این صفحه، ما شمارش کاربران آنلاین را نمایش خواهیم داد و از Timer برای بهروزرسانی مداوم آن استفاده خواهیم کرد.
```aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="YourNamespace.Default" %>
کاربران آنلاین
function refreshCount() {
// فراخوانی به سرور برای بهروزرسانی تعداد کاربران آنلاین
__doPostBack('Timer1', '');
}
```
#### 4. کد بیهند (Code-Behind برای `Default.aspx.cs`)
در کد بیهند، ما یک روش برای شمارش و نمایش تعداد کاربران آنلاین خواهیم داشت.
```csharp
using System;
using System.Collections.Generic;
using System.Web;
namespace YourNamespace
{
public partial class Default : System.Web.UI.Page
{
private static List onlineUsers = new List();
protected void Page_Load(object sender, EventArgs e)
{
// بررسی اینکه آیا کاربر در حال حاضر آنلاین است یا نه
string userSessionID = HttpContext.Current.Session.SessionID;
if (!onlineUsers.Contains(userSessionID))
{
onlineUsers.Add(userSessionID); // اضافه کردن کاربر جدید به لیست آنلاین
}
lblUserCount.Text = onlineUsers.Count.ToString(); // نمایش تعداد کاربران آنلاین
}
protected void Timer1_Tick(object sender, EventArgs e)
{
// بهروزرسانی تعداد کاربران آنلاین
lblUserCount.Text = onlineUsers.Count.ToString();
}
protected void Page_PreRender(object sender, EventArgs e)
{
// حذف کاربران غیر فعال (Session expired)
if (Session.IsNewSession)
{
string userSessionID = HttpContext.Current.Session.SessionID;
onlineUsers.Remove(userSessionID);
}
}
}
}
```
### 5. تنظیمات Web.config
اگر در پروژه خود از Session استفاده میکنید، اطمینان حاصل کنید که تنظیمات Session به درستی در فایل `Web.config` تنظیم شده است:
```xml
```
### 6. اجرای پروژه
پس از انجام مراحل فوق، پروژه را اجرا کنید. شما باید تعداد کاربران آنلاین را در صفحه مشاهده کنید که هر 5 ثانیه بهروز میشود.
### نکات اضافی
1. **مدیریت Session**: برای جلوگیری از استفاده بیش از حد از حافظه، میتوانید از یک متد منظم برای پاکسازی کاربران غیر فعال استفاده کنید.
2. **استفاده از پایگاه داده**: اگر بخواهید اطلاعات کاربران آنلاین را در پایگاه داده ذخیره کنید، میتوانید از یک جدول برای ذخیره SessionID و Timestamp استفاده کنید و کاربران غیر فعال را بر اساس Timestamp حذف کنید.
3. **افزایش کارایی**: برای سایتهای بزرگ، میتوانید از کش کردن یا سایر تکنیکهای بهینهسازی استفاده کنید.
این یک پیادهسازی ساده برای نمایش تعداد کاربران آنلاین است که میتواند بر اساس نیازهای خاص شما گسترش یابد.
| صفحه قابل مشاهده:
دانلود کد نمایش تعداد کاربران آنلاین در سایت با ASP.NET Web Form میباشد