PDA

View Full Version : آموزش: روش محاسبه کاربران آنلاین



masoud_dmp
چهارشنبه 26 مهر 1391, 20:15 عصر
با سلام خدمت دوستان
با اجازه از اساتید در این تاپیک میخوام مشکل خیلی از دوستان رو که مثل خودم درگیر محاسبه کاربران آنلاین هستند حل کنم.
در کمتر از 2 دقیقه و با طی کردن مراحل زیر خیلی سریع و راحت مشکلتون رو حل کنید.
1- فایلی که تو این لینک هست رو دانلود کنید Download source code - 13.5 KB (http://www.codeproject.com/KB/aspnet/Online-Active-Users/OnlineActiveUsers.zip)
2- بعد از دانلود فایل به سراغ پروژه خودتون برید و بر روی solution کلیک راست کرده و گزینه "Add Reference" را کلیک کنید و در تب browse فایل "OnlineActiveUsers.dll" را انتخاب کنید. (البته قبلش فایل دانلود شده رو تو پروژتون کپی کنید.)
3- به قسمت "Web.config" پروژتون برید و کد زیر رو درون تگ "system.web" وارد کنید :


<httpModules>
<add name="OnlineActiveUsers"
type="OnlineActiveUsers.OnlineUsersModule"/>
</httpModules>


(در صورتی که فایل "Web.config" رو ندارید در قسمت "Add new item" موجود میباشد.)

4- فایل "Global.asax" را باز کنید (در صورتی که فایل " Global.asax " رو ندارید در قسمت "Add new item" گزینه "Global Application Class" موجود میباشد.)
در قسمت "session_end" کد زیر را وارد کنید :

OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. UpdateForUserLeave()
5- حالا فقط کافیه که در هر کجایی از سایتتون کد زیر رو به همراه متدهای زیر وارد کنید.


"OnlineActiveUsers.OnlineUsersInstance.OnlineUsers"


: UsersCount تعداد کاربران آنلاین
: GuestUsersCount تعداد کاربران آنلاین میهمان. این متد زمانی کار میکنه که شما از متد های SetUserOfflineو SetUserOnline استفاده کنید.(نحوه استفاده از این دو متد در پایین هست.)
RegistredUsersCount : تعداد کاربران آنلاین عضو . این متد زمانی کار میکنه که شما از متد های SetUserOfflineو SetUserOnline استفاده کنید.(نحوه استفاده از این دو متد در پایین هست.)

کاربر عضو آنلاین :
برای اینکه بتونید کاری بکنید که مشخص شه کاربر شما آنلاین هست یا خیر باید کمی کدنویسی کنید
اگر شما از سیستم اهراز هویت ASP.NET استفاده کرده باشید در داخل کنترل Login و در LoggedIn eventکدزیر را وارد کنید.


protected void Login1_LoggedIn(object sender, EventArgs e)
{
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOnline(Login1.UserName);


}

در غیر اینصورت بصورت زیر از طریق سیستم احراز هویت خود عضو آنلاین را مشخص کنید.

OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOnline(UserName)

کاربر آفلاین :
حال اگر میخواهید متوجه بشید که کاربر شما آنلاین است یا نه از این طریق اقدام کنید
اگر شما از سیستم اهراز هویت ASP.NET استفاده کرده باشید در داخل کنترل Login و در LoggedOut eventکدزیر را وارد کنید


protected void LoginStatus1_LoggedOut(object sender, EventArgs e)
{
OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOffline(User.Identity.Name);


}

در غیر اینصورت بصورت زیر از طریق سیستم احراز هویت خود عضو آنلاین را مشخص کنید.

OnlineActiveUsers.OnlineUsersInstance.OnlineUsers. SetUserOffline(UserName)

بعد از انجام این کارها حالا شما میتوانید از دو متد GuestUsersCount و RegistredUsersCountاستفاده کنید.
که اعداد و ارقام چاپ شده کاملا صحیح میباشد.

سایر متدها :
IsOnline : این متد دو مقدارfalseوtrueرو برمیگردونه که اگهtrueباشه یعنی کاربر آنلاین هست و بلاعکس
GetLastActivity : این متد آخرین فعالیت کاربر رو با فرمتDateTimeچاپ میکنه که اگر فعایتی ثبت نشده باشه بصورتnullنمایش داده میشه.
در ضمن دوستان این کامپوننت برای سایتCodeProjectهستش و کاملا سالم و تست شدست.
ممنون از اینکه برای این تاپیک وقت گذاشتید.

raha_hakhamanesh
یک شنبه 10 دی 1391, 19:26 عصر
سلام دوستان
من علاقه مند شدم از روش این مقاله برای محاسبه تعداد کاربران آنلاین وب سایتم استفاده کنم ولی با اضافه کردن تگ <httpModules> به فایل وب کانفیگ با خطای 500 (Internal Server Error) مواجه میشم، البته این را هم اضافه کنم که بر روی لوکال بدرستی کار می کند و ضمنا بعد از این ماجرا به هر دلیلی که تگ <httpModules> را به فایل وب کانفیگ اضافه کنم مجدد با همان خطا مواجه می شود
لطفا راهنمایی بفرمایید

کد در 2008 نوشته شده و سرور هم ویندوزی است
با تشکر