PDA

View Full Version : دانلود کنید: کامپوننتی برای مشاهده کاربران آنلاین در وب سایت



clover
چهارشنبه 14 تیر 1391, 09:01 صبح
با سلام
با استفاده از این کامپوننت قادر خواهید بود کاربران آنلاین در وب سایت رو مشاهده کنید.

ویژگی ها:


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


لطفا کارایی رو خودتون چک کنید و نظر بدید، همچنین اگر باگ یا مشکلی در این کامپوننت مشاهده کردید و یا پیشنهاد یا انتقادی دارید از طریق همین تاپیک اعلام کنید.

موفق باشید

پ.ن: برای استفاده حتما تنظیمات وب کانفیگ رو مطابق پروژه ی نمونه ست کنید:


<httpModules>
<add name="OnlineUsersModule" type="Sanaie.WebControls.OnlineUsersModule"/>
</httpModules>


<anonymousIdentification enabled="true"/>

پ.ن: در حال حاضر برای مشاهده ی کاربران آنلاین در وب سایت می تونید از کنترلی که همراه با این کامپوننت قرار داده شده استفاده کنید. در ورژن های بعدی علاوه بر بهبود عملکرد این کنترل امکاناتی هم جهت دسترسی به داده های کامپوننت از طریق کد اضافه خواهد شد.


دانلود نسخه ی 1.1

Saman Hashemi
چهارشنبه 14 تیر 1391, 11:06 صبح
حالا که سرویس GoogleAnalytics بر روی سایت ایرانی بسته شده نیاز به چنین کامپوننت ها و سرویس هایی که این قابلیت ارائه میدهد زیاد احساس میشه...!
اگر قابل بدونید منم قبلا روی مسئله کار کردم و شاید بتونم در توسعه این کنترل نقش کوچیکی داشته باشم...!
به نظرم باید قابلیت آماری بیشتری به این کامپوننت اضافه بشه و امکان نگهداری اطلاعات نیز فراهم بشه مثلا در SQLServer و Access و XML و...!
1- تعداد بازدید صفحات
2- کاربران فعال
3- لیست سایتها و موتورهای جستجوی ارجاع دهنده کاربر
4- تعداد بازدید سایت در روز،ماه،...
بازم اگه چیزی به ذهنم رسید به همین پست اضافه مکینم...!

saeed_sho
چهارشنبه 14 تیر 1391, 14:42 عصر
سلام
از چه راهی میفهمی که کاربر چندتا صفحه ی باز داره؟ و کدوم صفحه در تب دیگری بازه؟
شما اگه از سشن استفاده نمیکنی پس از چه روش استفاده میکنید؟
اگه امکان داره سورس dll بزارید

clover
چهارشنبه 14 تیر 1391, 16:00 عصر
به نظرم باید قابلیت آماری بیشتری به این کامپوننت اضافه بشه و امکان نگهداری اطلاعات نیز فراهم بشه مثلا در SQLServer و Access و XML و...!
با تشکر از شما، در این کامپوننت فقط تاکید بر مشاهده ی کاربران آنلاین هست و از اونجایی که طراحی یک سیستم آمارگیر کامل، بسیار زمان بر و پیچیده هست قصد ندارم به عنوان یک سیستم آمارگیر اون رو توسعه بدم. با این حال خوشحال میشم شما یا دوستان دیگه برای این مورد پیشقدم باشید.


از چه راهی میفهمی که کاربر چندتا صفحه ی باز داره؟ و کدوم صفحه در تب دیگری بازه؟
در واقع در این روش به جای بررسی سشن های کاربران، به بررسی و پیگیری تک تک درخواست های کاربر پرداخته میشه که البته کار کم هزینه ای نیست، با این حال از روش هایی مثل ارسال درخواست به سرور توسط تایمر برای گزارش آنلاین بودن کاربر بهینه تر هست.


شما اگه از سشن استفاده نمیکنی پس از چه روش استفاده میکنید؟
عرض کردم بر اساس سشن کاربران آنلاین رو نمایش نمیدم و گرنه خودتون بهتر می دونید که بدون سشن و کوکی تقریبا شناسایی کاربر غیر ممکن هست.


اگه امکان داره سورس dll بزارید
متاسفانه به دلایلی از جمله اینکه یک کار آزمایشی هست و نواقص زیادی داره قادر به گذاشتن سورس نیستم، اما در آینده ای نزدیک و با تکمیل کار، سورس رو هم برای دوستان قرار خواهم داد.

موفق باشید

saeed_sho
چهارشنبه 14 تیر 1391, 16:07 عصر
دوست عزیز در مورد بررسی تک تک درخواست ها یکم بیشتر توضیح بدین
به چه طریقی این کارو انجام میدین؟

clover
چهارشنبه 14 تیر 1391, 16:27 عصر
دوست عزیز در مورد بررسی تک تک درخواست ها یکم بیشتر توضیح بدین
به چه طریقی این کارو انجام میدین؟

در حالت عادی وقتی شما قصد مشاهده ی یک صفحه ی وب رو دارید درخواست هایی از سمت مشتری به سرور فرستاده میشه برای دریافت صفحه ی مورد نظر، فایل های جاوا اسکریپت، عکس ها و ...
تمامی این درخواست ها پردازش شده و در نهایت داده ها به سمت مشتری ارسال شده و درخواست ها پایان پیدا می کنه، بعد از این مرحله شما عملا کاربر رو گم می کنید و هیچ دسترسی به اون نخواهید داشت مگر اینکه مجددا درخواستی از طرف کاربر به سرور برسه و یا اینکه درخواست پایان پیدا نکنه.
روشی که من استفاده کردم از این قرار هست که به ازای هر صفحه، یک درخواست از اون صفحه به سرور ارسال می کنم. این درخواست هیچ وقت توسط سرور پایان پیدا نمی کنه مگر اینکه صفحه ی مورد نظر بسته بشه که در این حالت پیغامی به سرور ارسال میشه مبنی بر پایان درخواست.

در حال حاضر به ازای هر درخواست یک ترد مشغول میشه تا درخواست پایان پیدا کنه و این محدودیت هایی رو در بر داره.

saeed_sho
چهارشنبه 14 تیر 1391, 17:14 عصر
ممنون از توضیحتون
اگه در یک سایت پر بازدید مثل دانشگاه یا یک سایت اجتماعی همزمان 200 نفر آنلاین بشن و هر کدوم 3 تا صفحه باز کنند اینجوری به برنامه سربار تحمیل نمیشه؟
چرا آمارگیری با سشن غیر واقعیه؟ (در پست اول گفتید)
من توی یک پروژه استفاده کردم درست کار میکرد
سوءتفاهم نشه جبهه نگرفتم فقط داریم گفتگوی منطقی و با دلیل میکنیم

clover
چهارشنبه 14 تیر 1391, 17:25 عصر
اگه در یک سایت پر بازدید مثل دانشگاه یا یک سایت اجتماعی همزمان 200 نفر آنلاین بشن و هر کدوم 3 تا صفحه باز کنند اینجوری به برنامه سربار تحمیل نمیشه؟
مسلما سربار داره و تاثیرات جانبی


چرا آمارگیری با سشن غیر واقعیه؟ (در پست اول گفتید)
من توی یک پروژه استفاده کردم درست کار میکرد
فرض کنید اعتبار سشن شما 20 دقیقه هست و کاربر صفحه ای رو باز می کنه و یک دقیقه بعد اون رو می بنده و از سایت خارج میشه. تا زمانی که سشن منقضی نشده به عنوان کاربر آنلاین تشخیص داده میشه.


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

موفق باشید

saeed_sho
چهارشنبه 14 تیر 1391, 17:44 عصر
اون مشکل بستن مرورگر با کدهای جاوااسکریپت قابل حله اینو ببینید من ازش استفاده کردم
http://www.dotnetspeaks.com/DisplayArticle.aspx?ID=12

clover
چهارشنبه 14 تیر 1391, 17:52 عصر
اون مشکل بستن مرورگر با کدهای جاوااسکریپت قابل حله اینو ببینید من ازش استفاده کردم
http://www.dotnetspeaks.com/DisplayArticle.aspx?ID=12

این روش دو تا ایراد اساسی داره:
1- در صورتی که کاربر تب و یا پنجره ی مرورگر رو ببنده دستورات رویداد unload اجرا نمیشن (برای اطمینان می تونید با استفاده از یک دستور alert چک کنید) بلکه با هر بار کلیک بر روی لینک های داخلی وب سایت دستورات مربوطه اجرا میشه، هندل کردن این رویداد قواعد خاص خودش رو داره
2- با فرض اینکه این رویداد اجرا بشه، فرض کنید کاربر چند صفحه از سایت رو در پنجره و یا تب های مجزا باز کرده و یکی از صفحات رو می بنده، سشن و کلیه اطلاعات ذخیره شده در اون از بین میره، که این روش رو برای کاربر عضو و کاربری که اطلاعاتی (به طور مثال سبد خرید) رو در سشن داره بی استفاده می کنه، همچنین با هر بار کلیک بر روی یکی از لینک های داخلی هم این اتفاق میفته.

saeed_sho
چهارشنبه 14 تیر 1391, 18:36 عصر
اگه از سشن استفاده کنیم برای رفع این ایراداتی که گفتین چه پیشنهادی دارین؟

clover
چهارشنبه 14 تیر 1391, 18:42 عصر
اگه از سشن استفاده کنیم برای رفع این ایراداتی که گفتین چه پیشنهادی دارین؟
دوست عزیز
در کل اتکا به سشن برای اطمینان از آنلاین بودن کاربر کافی نیست، ممکنه کاربر صفحه رو به مدت 30 دقیقه باز نگه داره و درحال مطالعه ی مطلب شما باشه در حالی که سشن باطل شده و کاربر رو آفلاین نشون میده.
پیشنهاد می کنم به دنبال روش بهتری باشید.

saeed_sho
چهارشنبه 14 تیر 1391, 18:44 عصر
مثلا چه روشی؟
من الان لازم دارم

saeed_sho
چهارشنبه 14 تیر 1391, 19:34 عصر
چی میشد شما یه هفته پیش این تاپیک رو میزدید؟
من در مورد این موضوع هر چی سرچ میکنم همه چیز در مورد سشن هستش
برای سرچ کردن در مورد روش شما باید در مورد چی سرچ کنم؟
و در مورد استفاده از روش هایی بجز سشن چه روش هایی پیشنهاد میدید؟
میشه راهنمایی کنید خیلی لازم دارم

clover
پنج شنبه 15 تیر 1391, 20:49 عصر
ورژن 1.1 این کامپوننت برای دانلود در پست اصلی قرار گرفت.

تغییرات این نسخه:


انتقال اسکریپت های جاوا اسکریپت به ابتدای صفحه بخ منظور کارایی بیشتر (در ورژن ابتدایی اسکریپت های جاوا اسکریپت به انتهای صفحه ی وب اضافه می شدند که در صورت طولانی بودن محتوای صفحات در بعضی موارد با تاخیر زیاد و در بعضی موارد به کلی اجرا نمی شدند)