PDA

View Full Version : آیا امکانش هست که زمان حضور کاربر در سایت رو بفهمم ؟



shocraneh
دوشنبه 17 اسفند 1388, 10:30 صبح
آیا امکانش هست که زمان حضور کاربر در سایت رو بفهمم ؟
لطفا توضیح بدید . اگه یه جوری باشه که مطمئن باشیم کاربر در حال استفاده است نه این اینکه صرفا کانکته خیلی بهتره . به هر جهت می خام بعد از کلیک روی دکمه ورود به سایت زمان اندازه گیری بشه .برای خاتمه تایمراگه کاربر روی دکمه خروج کلیک کرد سشن خالی میشه و زمان اندازه گیری میشه اما اگه کاربر سایت رو بست بدون خروج چی ؟؟
یه چیزایی قبلا شنیدم که اگه از سمت یک کلاینت کانکشن بازی موجود باشد و بعد از گذشت زمان هیچ فرمانی ارسال نشه کانکشن بسته میشه . میشه این قضیه توسط برنامه نویس مدیریت بشه یا نه ؟؟یه قضییه دیگه که ذهنمو مشغول کرده اینه که تعداد کاربران مهمان چه طوری به دست میاد ؟ فکر کنم این دو قضیه یه جورایی به هم مرتبط است .
به هر حال من می خام تا حد امکان زمان نزدیک به واقعیت باشه . لطفا رهنمایی کنید . پیشاپیش ممنونم .

mehdi.mousavi
دوشنبه 17 اسفند 1388, 15:09 عصر
آیا امکانش هست که زمان حضور کاربر در سایت رو بفهمم ؟
لطفا توضیح بدید . اگه یه جوری باشه که مطمئن باشیم کاربر در حال استفاده است نه این اینکه صرفا کانکته خیلی بهتره . به هر جهت می خام بعد از کلیک روی دکمه ورود به سایت زمان اندازه گیری بشه .برای خاتمه تایمراگه کاربر روی دکمه خروج کلیک کرد سشن خالی میشه و زمان اندازه گیری میشه اما اگه کاربر سایت رو بست بدون خروج چی ؟؟
یه چیزایی قبلا شنیدم که اگه از سمت یک کلاینت کانکشن بازی موجود باشد و بعد از گذشت زمان هیچ فرمانی ارسال نشه کانکشن بسته میشه . میشه این قضیه توسط برنامه نویس مدیریت بشه یا نه ؟؟یه قضییه دیگه که ذهنمو مشغول کرده اینه که تعداد کاربران مهمان چه طوری به دست میاد ؟ فکر کنم این دو قضیه یه جورایی به هم مرتبط است .
به هر حال من می خام تا حد امکان زمان نزدیک به واقعیت باشه . لطفا رهنمایی کنید . پیشاپیش ممنونم .

سلام.
شما میتونید این مساله رو از سمت Client کنترل کنید، اما بنظر من کار چندان جالبی نیست. بدین ترتیب که در بازه های مشخصی، (پشت پرده)، بسته هایی به سمت سرور ارسال کنید (بکمک JavaScript) و سمت سرور روند مورد نظرتون رو پیگیری کنید. بدین ترتیب، شما از زمان دقیق اتصال Client به Server مطلع خواهید شد. اما این روش وقتی کار میکنه که کاربر امکان اجرای کدهای JavaScript سمت Client رو Block نکرده باشه.

روش دیگه اینه که مدت زمان Timeout شدن Session رو پایین بیارید. دقیق خاطرم نیست، اما فکر میکنم بطور پیش فرض این زمان، 30 دقیقه (شایدم 20 دقیقه) تعیین شده. یعنی اگر کاربر، ظرف مدت زمان مزبور اقدام به Refresh کردن صفحه سمت client نکنه، Session مزبور از بین خواهد رفت (و شما این امکان رو دارید که سمت Server از این مساله مطلع بشید). هنگامیکه مرورگر بسته میشه هم این اتفاق میفته. در واقع، بعد از گذشت مدت زمان تعیین شده، Session بطور خودکار Expire میشه.

برای شروع، پیشنهاد میکنم ابتدا سیستم Membership رو در ASP.NET مطالعه کنید.

موفق باشید.

shocraneh
سه شنبه 18 اسفند 1388, 11:04 صبح
من با قضیه عضویت و ورود به سایت مشکل ندارم (خودم کد نویسی کردم )اما برایخاتمه تایم نمی دونم چی کار کنم .آیا دوستان نظر دیگه ای ندارند

mbh5929
پنج شنبه 02 اردیبهشت 1389, 13:00 عصر
یک راه استفاده از global.asax هست
void Session_Start(object sender, EventArgs e)
{
// Code that runs when a new session is started

}
و
void Session_End(object sender, EventArgs e)
{
// Code that runs when a session ends

}