HandyCafe Docs
owner cashier it-admin

کلاینت‌های قدیمی

HandyCafe می‌تواند نصب‌های کلاینت V3 و V4 را در کنار کلاینت‌های مدرن روی همان سرور مدیریت کند. کلاینت‌های قدیمی در Admin Panel به‌صورت نوع کارت جداگانه ظاهر می‌شوند و یک مجموعه اقدام محدودتر دارند که با چیزهایی هماهنگ است که پروتکل اصلی پشتیبانی می‌کند.

قبل از اینکه کلاینت‌های قدیمی را در Admin Panel ببینید، پشتیبانی زمان اجرا را در Settings > Legacy Clients فعال کنید.

کلاینت‌های قدیمی چگونه ظاهر می‌شوند

کلاینت‌های قدیمی از طریق پروتکل UDP multicast اصلی به سرور وصل می‌شوند. آنها مثل کلاینت‌های مدرن از mDNS استفاده نمی‌کنند. در عوض سرور آنها را به دو روش پیدا می‌کند:

مسیر کشف محرک
TCP Login کلاینت یک LoginRequest روی پورت فرمان TCP می‌فرستد. سرور peer را ثبت می‌کند و یک رویداد connected صادر می‌کند.
UDP Ping کلاینت یک frame از نوع Ping روی multicast group broadcast می‌کند. سرور آن را دریافت می‌کند، رکورد peer را به‌روزرسانی می‌کند و یک رویداد online صادر می‌کند.

وضعیت per-MAC در یک store مخصوص کلاینت قدیمی نگه‌داری می‌شود که IP، hostname، کاربر واردشده، نسخه کلاینت، تایمرهای نشست و timestamp آخرین مشاهده را دارد. هر frame ورودی، تایمر inactivity را reset می‌کند. اگر تایمر بدون ترافیک منقضی شود (پیش‌فرض 10 ثانیه)، کلاینت offline علامت می‌خورد. این رکورد در پایگاه‌داده می‌ماند تا تاریخچه از بین نرود.

کارت کلاینت قدیمی

هر کلاینت قدیمی به‌صورت کارتی جدا از کارت‌های کلاینت مدرن رندر می‌شود. هدر نام نمایشی را نشان می‌دهد (hostname وقتی موجود است، MAC وقتی نیست)، یک badge آنلاین یا آفلاین با رنگ، و یک برچسب وضعیت.

رنگ‌ها و برچسب‌های وضعیت

وضعیت رنگ معنی
Online سبز یک نشست فعال در حال اجراست.
Idle فیروزه‌ای کلاینت وصل است و منتظر است. هیچ نشستی فعال نیست.
Paused کهربایی نشست متوقف شده است. صورتحساب متوقف می‌شود.
Busy بنفش کلاینت در حال پردازش یک درخواست است.
Payment رز کلاینت در جریان پرداخت است.
Admin نیلی کلاینت در حالت مدیریت یا نگه‌داری است.
Offline خاکستری ترافیک اخیر وجود ندارد. تا وقتی کلاینت برنگردد، اقدام‌ها غیرفعال می‌مانند.
Timed آبی آسمانی یک نشست زمان‌دار با deadline در حال اجراست.

ساعت نشست

وقتی یک نشست فعال باشد، کارت یک بلوک ساعت نمایش می‌دهد:

  • زمان شروع.
  • زمان پایان (برای نشست‌های زمان‌دار).
  • دقیقه‌های استفاده‌شده.
  • دقیقه‌های باقی‌مانده با شمارش معکوس زنده.
  • هزینه انباشته‌شده.

اطلاعات هویتی

کارت همیشه این موارد را نشان می‌دهد:

  • آدرس MAC.
  • آدرس IP.
  • نسخه کلاینت (برای مثال "3.4.01").
  • کاربر واردشده، اگر وجود داشته باشد.

نوار ابزار اقدام

وقتی کلاینت آنلاین است، نوار ابزار اقدام زیر اطلاعات هویتی، عملیات در دسترس را ارائه می‌دهد.

کنترل نشست

دکمه چه زمانی دیده می‌شود رفتار
Login وضعیت idle است دیالوگ Device Login را باز می‌کند. دقیقه و روش پرداخت را انتخاب کنید. سرور یک فرمان Login با مقادیر انتخاب‌شده می‌فرستد. نشست روی کلاینت شروع می‌شود.
Logout وضعیت آنلاین، timed، paused، busy یا payment است اگر نشست postpaid باشد، یک دیالوگ پرداخت مبلغ و روش را جمع می‌کند. یک transaction در دفترکل نوشته می‌شود. سرور فرمان Logout می‌فرستد. نشست روی کلاینت بسته می‌شود.

Add Time

یک minute picker باز می‌کند. مقادیر مثبت (برای تمدید) یا منفی (برای کم‌کردن) را می‌پذیرد. حداکثر مقدار مطلق 10,000 دقیقه در هر جهت است. هم برای نشست‌های prepaid و هم postpaid کار می‌کند.

اگر در تنظیمات قیمت‌گذاری مقدارهای minute از پیش تعیین‌شده را پیکربندی کرده باشید، کارت یک ردیف از دکمه‌های preset هم نشان می‌دهد. با لمس هر preset، مقدار بدون باز کردن picker اعمال می‌شود.

Screenshot

از طریق پورت انتقال فایل، یک اسکرین‌شات زنده از کلاینت قدیمی درخواست می‌کند. جریان کار این است:

  1. سرور یک فرمان درخواست اسکرین‌شات می‌فرستد.
  2. کلاینت یک TCP listener کوتاه‌عمر روی یک پورت ephemeral باز می‌کند.
  3. سرور وصل می‌شود، یک header انتقال فایل 9بایتی می‌فرستد و منتظر می‌ماند.
  4. کلاینت صفحه را capture می‌کند، آن را به‌صورت BMP فشرده encode می‌کند و برمی‌گرداند.
  5. سرور BMP را decompress می‌کند و در پوشه legacy_screenshots زیر پوشه داده HandyCafe شما ذخیره می‌کند.
  6. viewer اسکرین‌شات با تصویر جدید باز می‌شود.

اگر کلاینت در بازه timeout پاسخ ندهد (پیش‌فرض 30 ثانیه برای اتصال، 20 ثانیه برای داده)، درخواست ناموفق می‌شود و یک toast خطا ظاهر می‌شود. می‌توانید بلافاصله دوباره تلاش کنید.

عملیات برق

اقدام تأیید اثر
Logoff ندارد کاربر ویندوز را روی دستگاه کلاینت logout می‌کند. session ویندوز پایان می‌یابد اما کامپیوتر روشن می‌ماند.
Reboot دارد یک فرمان restart می‌فرستد. دستگاه کلاینت دوباره راه‌اندازی می‌شود.
Shutdown دارد یک فرمان خاموش‌کردن می‌فرستد. دستگاه کلاینت خاموش می‌شود.

Reboot و Shutdown برای جلوگیری از عملیات برق اشتباه، یک دیالوگ تأیید نشان می‌دهند.

عملیات پشتیبانی‌نشده

کلاینت‌های قدیمی از همه قابلیت‌های موجود در کلاینت‌های مدرن HandyCafe پشتیبانی نمی‌کنند. مهم‌ترین کمبودها:

  • بدون تنظیم مکث در وسط نشست. تغییر زمان‌هایی که در حالت pause ارسال می‌شوند در صف می‌مانند اما ممکن است کلاینت آنها را نادیده بگیرد. ابتدا نشست را resume کنید، تغییر را اعمال کنید، و اگر لازم بود دوباره pause کنید.
  • بدون Admin mode از طریق فرمان سرور. وضعیت داخلی admin در کلاینت از سمت سرور قابل تغییر نیست. حالت Admin فقط روی خود دستگاه کلاینت کنترل می‌شود.
  • بدون ثبت مجوز از سرور. سرور بایت‌های مجوزی را که در frameهای کلاینت می‌بیند mirror می‌کند اما نمی‌تواند مجوز جدیدی به کلاینت push کند. کلاینت را به‌صورت محلی ثبت کنید.
  • بدون ادغام کیف پول عضو برای نشست‌های شروع‌شده روی کلاینت‌های قدیمی. پرداخت‌ها به‌صورت ردیف‌های ساده transactions با transaction_type=sessions و MAC کلاینت ثبت می‌شوند. جریان‌های مدرن کیف پول اعمال نمی‌شوند.
  • بدون دسکتاپ از راه دور. قابلیت remote desktop از مسیر جریان UDP استفاده می‌کند که در کلاینت‌های قدیمی وجود ندارد.
  • بدون push همگام‌سازی فایل. Sync Explorer فقط از طریق پروتکل مدرن فایل را push می‌کند.

برای عملکرد کامل، هر جا ممکن است به کلاینت‌های مدرن HandyCafe مهاجرت کنید.

رفتار آفلاین

وقتی inactivity timeout منقضی می‌شود، کارت کمرنگ می‌شود، badge وضعیت خاکستری می‌شود و همه دکمه‌های اقدام غیرفعال می‌شوند. رکورد کلاینت در store باقی می‌ماند تا تاریخچه، MAC، hostname و داده آخرین مشاهده حفظ شوند. وقتی کلاینت دوباره آنلاین شود (یک UDP ping یا TCP login جدید)، کارت دوباره فعال می‌شود و اقدام‌ها در دسترس قرار می‌گیرند.

این رکورد به‌صورت خودکار حذف نمی‌شود. برای حذف دائمی یک کلاینت قدیمی، آن را از پایگاه‌داده مدیریتی ویرایش کنید یا از ابزار مدیریتی مربوطه حذف کنید.

نکته‌ها

  • inactivity timeout را روی 10 ثانیه نگه دارید مگر اینکه مطمئن باشید کلاینت‌های قدیمی شما کندتر beacon می‌فرستند. timeout کوتاه‌تر ممکن است کلاینت‌های سالم را در قطع و وصل‌های کوتاه شبکه اشتباهاً offline علامت بزند.
  • اگر کلاینت قدیمی online به‌نظر می‌رسد اما به فرمان‌ها پاسخ نمی‌دهد، Protocol Variant را در Settings تأیید کنید. ناسازگاری بین گونه سرور (STE در برابر Standard) و build کلاینت باعث می‌شود فرمان‌ها بی‌صدا رد شوند.
  • اسکرین‌شات‌های کلاینت‌های قدیمی BMP فشرده هستند و از captureهای PNG مدرن بزرگ‌ترند. اگر تعداد زیادی capture می‌گیرید، پوشه legacy_screenshots را روی درایوی با فضای آزاد کافی نگه دارید.
  • هنگام جابه‌جایی شیفت، از Add Time با دکمه‌های preset استفاده کنید. یک لمس، نشست را به‌اندازه از پیش تعیین‌شده افزایش می‌دهد و از تایپ دستی دقیقه‌ها سریع‌تر است.
  • کلاینت‌های قدیمی را تدریجی بازنشسته کنید. هر بار یک batch را مهاجرت دهید، مطمئن شوید کلاینت‌های جدید در Admin Panel دقیقاً همان‌طور کار می‌کنند، و فقط بعد از آن قدیمی‌ها را از رده خارج کنید.