PDA

View Full Version : نحوه تشخیص کاربران آنلاین.



alirayaneh
یک شنبه 14 شهریور 1389, 03:20 صبح
سلام عزیزان

من یه کد لوگین برای یه سیستم نوشتم بعد میخوام کاربر بعد از لوگ کردن ااسمش توی لیست آنلاین ها قرار بگیره و اگر کاربر از صفحه خارج شاد یا لوگ اوت کرد اسمش از اون لیست خارج شه

اول اینکه به چه شکل عمل کنم
دوم اینکه میخوام آجاکس بنویسمش لطفا راهنمایی کنید .

mohmadd
یک شنبه 14 شهریور 1389, 03:37 صبح
این تاپیکو ببنید :
http://barnamenevis.org/forum/showthread.php?t=230541
میتونید همزمان با sesssion چک کنید.
--
منظورت از ajax اینه که نمایش تعداد نفرات انلاین رو ajax کنی ؟؟ (واسه فروم فکر نکنم چیز خوبی باشه)

alirayaneh
یک شنبه 14 شهریور 1389, 11:24 صبح
بله تشکر میکنم از شما
من اون تاپیک رو دیدم اما فکر میکردم راه دیگری هم برای این کار باشه که تشخیص به صورت آنلاین صورت بگیره یعنی خصیصه ای وجود داشته باشه که کاربر به صورت ثانیه ای چک بشه و در صورتی که همزمان کاربر توی صفحه باشه کاربر جز لیست آنلاین ها باشه ...
در هرصورت در روشی که من مد نظرم بود درصد اطمینان تا حدود زیادی بالا میرفت ...
آیا خصیصه ای برای کنترل و بدست گیری این جریان وجود داره؟

binyaft
یک شنبه 14 شهریور 1389, 11:29 صبح
شما هر بار که کاربر لاگین میکنه یک زمان ر اساس timestamp ذخیره میکنی براش بعد اونو به دقیقه تبدیل میکنی
هر کدوم که مثلا زیر یک دقیقه بود میشه انلاین

alirayaneh
یک شنبه 14 شهریور 1389, 13:25 عصر
binyaft (http://barnamenevis.org/forum/member.php?u=106845) جان
ببنید این که شما فرمودید تقریبا همونیه که محمد جان اشاره کردن
من امکان آجاکسی کردنش مد نظرم هست و این که چیزی شبیه به لیست کاربران در یک چت روم که ورود و خروج کاربران و همچنین آنلاین بودن و آفلاین شدن کاربران کاملا مشهوده
ضمن اگه توجه کرده باشید توی سیستم هایی مثل نیوک و vb و.. وقتی بازدید کننده ای وارد صفحه میشه در صورتی که لوگین نکرده باشه یوزری به عنوان مهمان یا آی پی خود بازدید کننده به اون تعلق میگیره و در لیست آنلاین ها نمایش داده میشه ..

mohmadd
یک شنبه 14 شهریور 1389, 18:11 عصر
احتمالا با ajax بشه , ولی مطمئنی که میخوای اینکارو کنی ؟
فرض کن 300 نفر انلاین هستن هر ثانیه به سرور باید وصل بشن.

sama01
یک شنبه 14 شهریور 1389, 19:58 عصر
اگر می‌گن نیاز دارند که خب حتما نیاز دارند دیگه.

شاید یک راه این باشه:
1.
شما در database برای هر کاربر یک فیلد می‌ذاری به اسم lastActivity و در هر تراکنشی که کاربر داره، مقدار اون رو برابر با timestamp زمان تراکنش می‌ذاری.

2.
شما یه صفحه‌ی php درست می‌کنی که می‌ره در جدول users می‌چرخه و تعداد کاربرانی را که مقدار فیلد بالا در آن‌ها بیش از time-300 بود رو پیدا می‌کنه. (5 دقیقه) و روی صفحه می‌نویسه. یعنی تنها خروجی این صفحه، یک عدده. مثل 12.

3.
در صفحات html خود، یک سیستم ajax ایجاد می‌کنید که در مقاطع زمانی مورد نظر (2، 5، 10 یا n ثانیه) به صفحه‌ی بالا مراجعه و عدد مربوطه را دریافت می‌کند.

این یک روش انجام کاره.

mohmadd
یک شنبه 14 شهریور 1389, 21:47 عصر
خوب این روش که به ajax نیازی نیست همون روش لود با php کافیه.
من فکر کنم منظورشون اینه که با java script کاربرارو چک کنیم و موقعیت باز بودن صفحه رو بهش بفرستیم.

alirayaneh
یک شنبه 14 شهریور 1389, 21:50 عصر
تشکر میکنم فکر میکنم تا حدودی به داریم به نتیجه میرسیم

sama01
یک شنبه 14 شهریور 1389, 21:56 عصر
شما یه مثال بزن که ajax باشه و با چیزی که من گفتم تفاوت اساسی داشته باشه.
شما در ajax یه بخشی داری سمت کاربر (3) و یک صفحه‌ای سمت سرور (2).
غیر از اینه؟


تشکر میکنم فکر میکنم تا حدودی به داریم به نتیجه میرسیم
خوبه.
فقط لطف کنید در خصوص خود تکنیک ajax سوال نکنید. زیرا به وفور منابع آموزشی برای این کار موجوده.
خوبه که این‌جا در مورد تکنیک بحث کنیم.

mohmadd
دوشنبه 15 شهریور 1389, 03:16 صبح
بنده مذرت میخوام چون منظور ایشون رو اشتباه فهمیدم .
بنده از این لحاظ عرض کردم که میشه تشخیص داد که ایا کاربر هنوز صفحه مورد نظر رو داره نگاه میکنه یا اینکه در مرورگر به صفحه ی دیگه ای نگاه میکنه و یا بسته رفته ....
به هر حال این موارد واسه فروم لازم نیست .

sama01
دوشنبه 15 شهریور 1389, 03:43 صبح
من هم موافقم که اگر واقعا نیازی به این کار ندارید، از انجام آن اجتناب کنید.
استفاده از چنین قابلیتی تنها در صورتی ارزش داره که اطلاعات آن در فاصله‌ی بین refresh صفحه، تغییراتی کند که برای کاربر ارزش‌مند باشد.

مثلا استفاده از ajax برای نمایش آخرین مطالب ارسالی در صفحه‌ی اول مفید است.
ولی من هم کاربرد منطقی برای نمایش لحظه‌ای آمار بازدیدکنندگان نمی‌بینم.

Arman_gh
دوشنبه 15 شهریور 1389, 07:12 صبح
یک را دیگر هم به‌کارگیری comet یا reverse ajax هست که چند وقت پیش توضیح دادم. جستجو کنید حتما خواهید یافت. در ضمن این کارها اگر کاربران زیادی دارید به سرور فشار بسیار زیادی میاره و گاهی باعث داون شدن سرور میشه.

binyaft
دوشنبه 15 شهریور 1389, 11:06 صبح
من یه چیزی میگم شاید بشه
" لیست کابران انلاین رو که در اوردیم برای خوندنشون هر چند لحظه یک بار اون صفحه ای که کاربران انلاین رو نشون میده به صورت آژاکس باگذاری کنیم "

sama01
دوشنبه 15 شهریور 1389, 19:37 عصر
خوب این چه چیز جدیدی نسبت به چیزی که من گفته بودم داره؟