رهام رفیعی تهرانی
رهام رفیعی تهرانی
خواندن ۲ دقیقه·۳ ماه پیش

شمارش تعداد کاربران آنلاین در اپلیکیشن وب

توانایی ردیابی تعداد کاربران آنلاین در یک وب اپلیکیشن برای مسائلی مثل میزان استقبال کاربران، بهینه سازی سرورها از لحاظ بازدهی و حتی مسائل امنیتی بسیار مهم و حیاتی است.

چه برای یک بلاگ کوچک چه برای یک پلتفرم عریض و طویل، دانستن تعداد کاربران آنلاین در هر لحظه، اطلاعات ارزشمند و مهمی رو به همراه داره.

در این مقاله میخوایم راه حل های مختلف شمارش کاربران آنلاین رو مرور کنیم.


بخش اول : درک مفهوم کاربر آنلاین

قبل از اینکه به راه حل های فنی بپردازیم، اول به درک مشترکی از مفهوم کاربر آنلاین برسیم.

در وب اپلیکیشن ها، یک کاربر آنلاین به کسی گفته میشه که یک جلسه ( session ) فعال روی پلتفرم داره یا به تازگی تعاملی با سرور داشته. به کمک کوکی ها ، session ها و web socket ها میتونیم این تعاملات رو رصد کنیم.

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

در اپلیکیشن های در لحظه (real-time) ، به کمک web socket ها میتونیم کاربران آنلاین رو با به روز رسانی وضعیت شون شناسایی کنیم.

هر روشی مزایا و معایب خودش رو داره که در ادامه بهش میپردازیم.

راهکارهای عمومی دریابی کاربران آنلاین عبارتند از:

  1. ردیابی session-based
  2. ردیابی token-based ( مثل jwt )
  3. ردیابی WebSocket
  4. دیتابیس های in-memory مثل Redis برای به روز رسانی های real-time


بخش دوم :‌ ردیابی Session-Based

راه حل معروف و مستقیم ردیابی کاربران آنلاین استفاده از طریق session است. در جاوا هنگام استفاده از Spring Boot شما میتوانید از HttpSession برای مدیریت جلسات و ردیابی کاربران استفاده کنید.


بخش سوم: ردیابی Token-based


با نگهداری توکن های active و زمان انتقضای آنها در مثلا Redis، شما میتوانید تعداد توکن های ولید را در هر لحظه داشته باشید.


بخش چهارم: ردیابی WebSocket

به ازای هر کاربر شما میتوانید یک ارتباط WebSocket بین کلاینت و سرور برقرار کنید. به محض قطع ارتباط، session ارتباطی حذف میشود. با شمارش تعداد ارتباطات فعال میتوانید کاربران در لحظه را شمارش کنید.


امیدوارم از این مقاله لذت ببرید و براتون مفید باشه.

اگر دوست دارید میتونید از طریق صفحه لینکدین با من در ارتباط باشید :)

اصل مقاله شامل پیاده سازی با جاوا هم هست. میتوانید مقاله اصلی رو اینجا مطالعه کنید.

موفق باشید




jwtwebsocketsessioncookieweb application
برنامه نویسی یک شغل نیست، یک هنره.
شاید از این پست‌ها خوشتان بیاید