PDA

View Full Version : سوال: افراد آنلاین را چطوری محاسبه کنم ؟



aspismylove
دوشنبه 18 بهمن 1389, 11:19 صبح
سلام خسته نباشید

من با global.aspx بازدید کل (بطور واقعی) با آی پی طرف و ... بدست میارم و حالا میخام افراد آنلاین و بدست بیارم ، اگه میشه راهنمایی کنید ممنون میشم .

:چشمک::چشمک:

aspismylove
دوشنبه 18 بهمن 1389, 13:15 عصر
راستی این و هم بگم که اطلاعات بازدید کننده رو داخل بانک میریزم (آی پی و مرورگر و تاریخ و ساعت بازدید)

لطفا راهنمایی کنید

ممنون :قلب:

b.paseban
دوشنبه 18 بهمن 1389, 13:43 عصر
سلام بر شما.
یه کوئری بنویس و که کل افراد عضو سایت رو بدست بیار بعدش بریز توی یه دیتا ریدر و بعدش توی یه حلقه چک کن و افراد آنلاین رو بدست بیار.

aspismylove
دوشنبه 18 بهمن 1389, 13:57 عصر
سلام بر شما.
یه کوئری بنویس و که کل افراد عضو سایت رو بدست بیار بعدش بریز توی یه دیتا ریدر و بعدش توی یه حلقه چک کن و افراد آنلاین رو بدست بیار.
میشه یک راهنمایی درباره همون کوئری بدین ؟؟؟؟؟

mirahsani
دوشنبه 18 بهمن 1389, 14:07 عصر
کل افراد عضو که آن لاین نیستند!!
به نظر من یه کانتر بذار، موقع ورود افراد یعنی لاگین کردن می تونی به کانتر یکی اضافه کنی و موقع خروج یکی کم کنی
سلام بر شما.
یه کوئری بنویس و که کل افراد عضو سایت رو بدست بیار بعدش بریز توی یه دیتا ریدر و بعدش توی یه حلقه چک کن و افراد آنلاین رو بدست بیار.

b.paseban
دوشنبه 18 بهمن 1389, 14:30 عصر
کل افراد عضو که آن لاین نیستند!!
به نظر من یه کانتر بذار، موقع ورود افراد یعنی لاگین کردن می تونی به کانتر یکی اضافه کنی و موقع خروج یکی کم کنی

دقت نکری چی شد


سلام بر شما.
یه کوئری بنویس و که کل افراد عضو سایت رو بدست بیار بعدش بریز توی یه دیتا ریدر و بعدش توی یه حلقه چک کن و افراد آنلاین رو بدست بیار.

من گفتم که بریزه توی یه حلقه اونجا چک کنه هر کی انلاین بود رو بکشه بیرون.



میشه یک راهنمایی درباره همون کوئری بدین ؟؟؟؟؟


یه سلکت بنویس که تمامی اعضای سایت رو بدست بیاره
SELECT * USER From TBLuser

mirahsani
دوشنبه 18 بهمن 1389, 15:08 عصر
آهان خوب شما اینو نگفتی که هر کی آن بودو تو حلقه برداره.
ولی روشی که من گفتم دیگه کوئری هم نمی خواد

Mostafa_Dindar
دوشنبه 18 بهمن 1389, 15:36 عصر
سلام


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

سلام , در صورتی که میخواهین تعداد افراد آنلاین رو بدست بیارید , اینکار بسیار سادست . یک متغیر Application تعریف کنید و در رویداد Application_Start اون رو مقدار دهی اولیه صفر کنید . و در رویداد Session_Start یکی به آن اضافه کرده و در Session_End یکی از آن کم کنید . به عنوان نمونه :

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

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

void Session_End(object sender, EventArgs e)
{
// Code that runs when a session ends.
// Note: The Session_End event is raised aonly 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["OnlineUsers"] = (int)Application["OnlineUsers"] - 1;
Application.UnLock();
}

ولی اگر منظور شما لیست افراد آنلاین هست , اینکار بستگی به پیاده سازی سیستم Membership شما دارد . در صورتی که از Membership خود ASP.NET استفاده میکنید , براحتی با استفاده از متد زیر میتوانید آن را بدست آورید :


Membership.GetNumberOfUsersOnline();

در غیر اینصورت با توجه به شرایط باید کارهای متفاوتی انجام دهید .

موفق باشید

aspismylove
دوشنبه 18 بهمن 1389, 16:55 عصر
سلام



سلام , در صورتی که میخواهین تعداد افراد آنلاین رو بدست بیارید , اینکار بسیار سادست . یک متغیر Application تعریف کنید و در رویداد Application_Start اون رو مقدار دهی اولیه صفر کنید . و در رویداد Session_Start یکی به آن اضافه کرده و در Session_End یکی از آن کم کنید . به عنوان نمونه :

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

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

void Session_End(object sender, EventArgs e)
{
// Code that runs when a session ends.
// Note: The Session_End event is raised aonly 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["OnlineUsers"] = (int)Application["OnlineUsers"] - 1;
Application.UnLock();
}

ولی اگر منظور شما لیست افراد آنلاین هست , اینکار بستگی به پیاده سازی سیستم Membership شما دارد . در صورتی که از Membership خود ASP.NET استفاده میکنید , براحتی با استفاده از متد زیر میتوانید آن را بدست آورید :


Membership.GetNumberOfUsersOnline();

در غیر اینصورت با توجه به شرایط باید کارهای متفاوتی انجام دهید .

موفق باشید

ممنون از راهنمایی های خوبتون !!!
نه من از Membership خود ASP.NET استفاده نمیکنم !!!
با استفاده از Session در هنگام لاگین کردن میتونم تشخیص بدم که طرف آنلاین هست یا نه ؟

ironclip
سه شنبه 15 آذر 1390, 02:31 صبح
سلام



سلام , در صورتی که میخواهین تعداد افراد آنلاین رو بدست بیارید , اینکار بسیار سادست . یک متغیر Application تعریف کنید و در رویداد Application_Start اون رو مقدار دهی اولیه صفر کنید . و در رویداد Session_Start یکی به آن اضافه کرده و در Session_End یکی از آن کم کنید . به عنوان نمونه :

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

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

void Session_End(object sender, EventArgs e)
{
// Code that runs when a session ends.
// Note: The Session_End event is raised aonly 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["OnlineUsers"] = (int)Application["OnlineUsers"] - 1;
Application.UnLock();
}


موفق باشید

ممنون میشم بگید چه جوری از این تابع ها استفاده کنیم
یا یک مثال ضمینه کنید

mmnoody2006
سه شنبه 15 آذر 1390, 08:14 صبح
برادر موسوی ! با اینکه همیشه بهترین روش رو پیشنهاد می دادید ولی ایندفه زیاد جالب نبود چون خودم تو یه پروژه استفاده کردم در حالی که timeout روی 10 مین بود خیلی دروغ می گه این روش در کل روشی که بهروز راد گفته فکر کنم منطقی تر و درست تر باشه

http://barnamenevis.org/showthread.php?29657-%D8%AA%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A7%D9%81%D8%B1%D8%A7%D8%AF-%D8%A2%D9%86%D9%84%D8%A7%DB%8C%D9%86