سایت ساز وبزیخرید بک لینک

ASP.NETافراد آنلاین در

شروع موضوع توسط aref1364 ‏1 فوریه 2007 در انجمن asp , ASP.NET

  1. aref1364

    aref1364 Registered User

    تاریخ عضویت:
    ‏23 جولای 2005
    نوشته ها:
    395
    تشکر شده:
    1
    چجوری می تونم تعداد افرا آنلاین رو در ASP.NET نشون بدم؟

    من با session_start می تونم فردی رو که وارد شد شناسایی کنم اما نمیدونم چجوری خروجش رو باید تشخیص بدم. در ضمن session_end هم در این مورد درست جواب نمیده!!!

    یکی کمک کنه لطفا...!!!
     
  2. بازدیدیار - افزایش بازدید سایت و سیگنال های برندخرید بک لینک
  3. shimakh

    shimakh کاربر تازه وارد

    تاریخ عضویت:
    ‏11 دسامبر 2006
    نوشته ها:
    115
    تشکر شده:
    0
    سلام
    متاسفانه من جواب سؤالتون رو نمی دونم ولی دو تا سوال برای خودم پیش اومد
    1- چطور از session_start استفاده می کنید؟
    2- چطور می تونم تعداد افرادی رو که امروز از سایت بازدید کردند رو تشخیص بدم؟
    متشکرم​
     
  4. mehdivk

    mehdivk Registered User

    تاریخ عضویت:
    ‏5 آپریل 2006
    نوشته ها:
    319
    تشکر شده:
    0
    دوست عزیز من نمی دانم مشکل شما در مورد Session_end چیست ؟ لطفا در مورد مشکل خود بیشتر توضیح دهید . اما برای شمارش تعداد کاربران آنلاین در وب سايت خود می توانید یک Application درست کنید نه یک Session . این Application هست که توسط تمامی کاربران سايت قابل دسترس است .
    در Session_Start به مقدار فعلی Application یکی اضافه کن و در Session_end از مقدار فعلی یکی کم کن . به این ترتیب شما می توانید تعداد کاربران آنلاین در در هر لحطه داشته باشید .
     
  5. aref1364

    aref1364 Registered User

    تاریخ عضویت:
    ‏23 جولای 2005
    نوشته ها:
    395
    تشکر شده:
    1
    من دقیقا همین کار رو کردم. الان مشکل اینجاست که session_end کار نمی کنه. یعنی کم نمیشه مقادیر از application
     
  6. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,284
    تشکر شده:
    17
    محل سکونت:
    North Pole
    در مورد کاربران آنلاین ، چیزی که من توی برنامه های بزرگ دیدم اینه که میان IP کاربر ها رو با زمانی که بازدید داشتن توی یه sql server DB ذخیره میکنن ، بعد یه زمانی مشخص میکنن کاربرای یی که توی آون بازه زمانی قرار دارند آنلاین محسوب میشن . البته روشهای دیگه ای هم هست ولی جالبی این روش اینه که شما اطلاعات بیشتری رو هم میتونید داشته باشید مثل اینکه الان چند کاربر چه صفحه ای رو میبینن و کلی اطلاعات دیگه !
     
  7. mehdivk

    mehdivk Registered User

    تاریخ عضویت:
    ‏5 آپریل 2006
    نوشته ها:
    319
    تشکر شده:
    0
    ایده ی جالبیه
     
  8. aref1364

    aref1364 Registered User

    تاریخ عضویت:
    ‏23 جولای 2005
    نوشته ها:
    395
    تشکر شده:
    1
    این موضوع یه جورایی برای من گنگه!!!
    این که نشد تعداد آنلاین ها. این شد باز مثل اون سیاست های تبلیغاتی الکی!
    میشه لطفا بیشتر توضیح بدید تا اگه قضیه رو اشتباه گرفتم اصلاحش کنم تو ذهنم؟؟؟
    ممنون.
     
  9. m3hrz4d

    m3hrz4d Registered User

    تاریخ عضویت:
    ‏21 سپتامبر 2005
    نوشته ها:
    620
    تشکر شده:
    1
    محل سکونت:
    اصفهان
    به نظر من
    علت اینکه فکر میکنی session_end کار نمیکنه اینه که انتظار داری وقتی صفحه رو (توی explorer) بستی session_end فراخوانی بشه.در صورتی که session_end زمانی فراخوانی میشه که هیچ request ی از کاربر توی مدت session time out فرستاده نشه.یعنی اگه مثلا session time out برابر 10 دقیقه باشه و شما یک صفحه رو باز کنی و همون لحظه ببندی 10 دقیقه بعد session ت time out میشه و session_end فراخوانی میشه.ببابراین آمار افراد آنلاینی که با این روش گرفته میشه معمولا بیشتر از تعداد واقعی هستش.
     
  10. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,284
    تشکر شده:
    17
    محل سکونت:
    North Pole
    منم یه توضیحی بر توضیحات پلاس جان بدم : شما هر کاری بکنی نمیتونی یه عدد دقیق به عنوان کاربر های آنلاین بدی چون همونطوری که خودت هم خوب میدونی ارتباط سرور با کلاینت اینجوری اه که یه درخواستی فرستاده میشه از طرف کاربر (مرورگرش البته ! ) و یه جوابی هم از سرور به مرورگر کاربر ارسال میشه که همه این اتفاقات در یک لحضه می افته و این وسط هیچ ارتباطی بین کاربر و سرور برقرار نیست که سرور مطمئن شه این بابا هنوز داره صفحه سایت مارو میخونه یا رفته یه جای دیگه داه برای خودش جک میخونه !
    روی همین حساب افرادی که طی یک مدت خاصی از سرور درخواست داشتن به عنوان افراد آنلاین به حساب میان حالا به هر روشی که میخوای حساب کنی ! مدتشم معمولا 10 تا 20 دقیقه در نظر میگیرن .

    کدوم سایت های تبلیغاتی ؟!
     
  11. m3hrz4d

    m3hrz4d Registered User

    تاریخ عضویت:
    ‏21 سپتامبر 2005
    نوشته ها:
    620
    تشکر شده:
    1
    محل سکونت:
    اصفهان
    البته یه روش شاید احمقانه! برای اینکه بشه آمار تقیریبا دقیقی گرفت اینه که یه جاوا اسکریپت بگذاری که مثلا هر 10 ثانیه یک صفحه ی سایت رو درخواست کنه و این صفحه لیست درخواست ها که توی application هست رو هی آپدست کنه و وقتی میخوای آمار رو نشون بدی فقط اونهایی رو حساب کنی که تا ده ثانیه قبل درخواست داشتن!!!!
     
  12. sayanir

    sayanir کاربر تازه وارد

    تاریخ عضویت:
    ‏9 ژانویه 2007
    نوشته ها:
    17
    تشکر شده:
    0
    جواب اين سوال بستگي به اين داره كه از كدوم نسخه از asp.net استفاده كنيد.
    در نسخه 2 امكاني پيش فرض براي اين موضوع وجود داره فقط بايستي اين امكان را در فايل web.config فعال كرده باشيد.
    Membership.GetNumberOfUsersOnline();​

    و يكي ديگه از امكانات نسخه 2 masterPage ها هستند كه با استفاده از اين امكان و با كمي برنامه‌نويسي مي‌توانيد تعداد كاربران در حال مشاهده هر صفحه را براساس IP و آخرين زمان مراجعه مشخص كنيد.
    خط زير IP كاربر را برمي‌گردونه

    Request.UserHostAddress

    در مورد اينكه Session_End فراخواني نمي‌شه، به عنوان يك قانون كلي نمي‌توني روي اين رخداد حساب كني، اون هم به خاطره ماهيت پروتكل http كه بدون وضعيت (stateless) است. يعني اينكه اگر كاربر پنجره مرورگرش رو ببنده يا به يك صفحه ديگه بره اين رخداد اتفاق نمي افته. طبق تعريف پس از پايان زمان بقاي يك session بايستي رخداد پايان فراخواني بشه. (به طور پيش فرض 20 دقيقه كه در فايل web.config ميشه كم يا زيادش كرد).
    من فكر كنم راه‌هاي بهتري براي كاري كه قصد انجامش رو داري پيدا مي كني. (اگر راهه ديگه‌اي وجود نداره، اكثر مرورگرهاي جديد از ردخداد Unload پشتيباني مي‌كنن كه مي‌توني با جاوااسكريپت كنترلش كني، اما توصيه نمي شه - تو لينك كد لازم وجود داره)

    براي اطلاعات بيشتر به لينك زير مراجعه كنيد (كه البته حرف چندان بيشتري براي گفتن نداره):

    http://p2p.wrox.com/topic.asp?TOPIC_ID=1774&SearchTerms=vadivel
     
  13. iranidesign

    iranidesign کاربر تازه وارد

    تاریخ عضویت:
    ‏3 جولای 2006
    نوشته ها:
    62
    تشکر شده:
    0
    سلام اقای sayair !!!
    من یه سوال دارم ؟؟؟؟
    میشه یک کم در مورد این Request.UserHostAddress توضیح بدین ؟؟؟
    یک مثالی بزنین که بتونیم استفادش کنیم ؟؟؟؟
    و ازش یک چیزی یاد بگیریم خدا خیرتون بده .
     
  14. aref1364

    aref1364 Registered User

    تاریخ عضویت:
    ‏23 جولای 2005
    نوشته ها:
    395
    تشکر شده:
    1
    مثالش این:

    label1.text=request.userhostaddress

    با این کار ادرس آی پی بازدید کننده ی صفحه در label1 نشون داده می شه.
    توضیح کاملی دادم نه؟:rolleyes:
     
  15. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,284
    تشکر شده:
    17
    محل سکونت:
    North Pole
    دوست عزیزم شاید من دارم اشتباه میکنم ولی فکر میکنم ولی فکر میکنم
    کد:
    Membership.GetNumberOfUsersOnline();
    
    که فرمودید تعداد کاربر های لاگین شده آنلاین رو نشون بده نه کل کاربر های آنلاین رو درسته ؟
     
  16. iranidesign

    iranidesign کاربر تازه وارد

    تاریخ عضویت:
    ‏3 جولای 2006
    نوشته ها:
    62
    تشکر شده:
    0
    سلام اقا من دنبال این میگردم که sayair تو پستش گفت : (و يكي ديگه از امكانات نسخه 2 masterPage ها هستند كه با استفاده از اين امكان و با كمي برنامه‌نويسي مي‌توانيد تعداد كاربران در حال مشاهده هر صفحه را براساس IP و آخرين زمان مراجعه مشخص كنيد.
    ) این کار رو چطوری انجام بدیم؟؟؟؟
     
  17. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,284
    تشکر شده:
    17
    محل سکونت:
    North Pole
    masterPage ها هیچ ربطی به کاربران آنلاین ندارند ! مربوط به طراحی غالب وبسایت میشن که کمک میکنن کل سایت از یه طراحی یکسان برخوردار باشه بدون اینکه بخوای هدر و فوتر و اینا رو توی همه صفحه ها به کار ببری !
     
  18. alireza sh

    alireza sh مدیر بازنشسته

    تاریخ عضویت:
    ‏2 ژانویه 2006
    نوشته ها:
    2,668
    تشکر شده:
    68
    محل سکونت:
    نصف جهان

    کد:
    Membership.GetNumberOfUsersOnline();
    
    [B]Gets the number of users currently accessing an application.[/B]
    
    توصیه میکنم این لینک را ببینید :

    http://msdn2.microsoft.com/en-us/library/system.web.security.membership.getnumberofusersonline.aspx
     
  19. iranidesign

    iranidesign کاربر تازه وارد

    تاریخ عضویت:
    ‏3 جولای 2006
    نوشته ها:
    62
    تشکر شده:
    0
    آقا من این پست رو دوباره میارم بالا
    می خواستم ببینم که روی هر صفحه چطوری مشخص کنم که چند کاربر در حال مشاهده صفحات خاص هستند با کلاسهای membership البته !!!
     
خرید و فروش ارزهای الکترونیکیخرید و فروش اتوماتیک ارزهای الکترونیکی عسل طبیعی و گرده گل ایرانی