كيفية الوصول إلى الأجهزة عن بُعد باستخدام Apache Guacamole

ما هو Apache Guacamole؟

Apache Guacamole هو إطار عمل مفتوح المصدر أنشأته مؤسسة Apache يقدم تطبيقًا HTML5 يعمل ك بوابة سطح مكتب بعيد via RDP، SSH، و VNC بروتوكولات للوصول إلى الأسطح البعيدة دون استخدام أي برامج طرف ثالث أخرى.

حل Guacamole يتضمن العديد من المكونات الفردية، مثل libguac، guacamole-common، و guacamole-ext. بينما تتجاوز هذه المشاريع نطاق هذا المقال، سنركز على guacamole-common-js داخل بيئة Guacamole.

ما هو guacamole-common-js؟

يقدم مشروع Guacamole واجهة برمجة تطبيقات JavaScript للتواصل مع المكونات المصممة لتحقيق مواصفات Guacamole. توفر واجهة guacamole-common-js تنفيذ JavaScript لclient Guacamole وآليات النفق لتحويل بيانات البروتوكول من JavaScript إلى الجانب الخادم التطبيق. الجانب الخادم عادة ما يشتغل على جهاز مع guacd أو Guacamole Demon. تقدم مكتبة guacamole-common-js كائنات الت.abstract للفأرة واللوحة المفاتيح لتحويل أحداث الفأرة واللوحة المفاتيح في JavaScript إلى بيانات يمكن لGuacamole هضمها بسهولة.

استخدام guacamole-common-js لإنشاء عميل Guacamole مخصص

المتطلبات: قم بتثبيت guacamole-common-js عبر أي مدير الحزم المفضل لديك. في هذا المثال، سنستخدم npm.

Shell

 

الخطوة 1: إنشاء نفق Guacamole

إن إنشاء نفق Guacamole يتيح لك تدفق البيانات بسهولة بين الخادم والعميل.

JavaScript

 

يمكنك إرسال معلمات إضافية إلى خادمك عبر URL النفق باستخدام معلمات الاستعلام. على سبيل المثال، يمكن أن يبدو URL نفقك مثل path/to/your/tunnel?param1=value1&param2=value2.

الخطوة الثانية: استخدم كائن النفق لإنشاء عميل Guacamole

يمكنك إنشاء كائن Guacamole Client عن طريق تمرير كائن النفق الذي أنشأته للتو إلى مسstructor Guacamole.Client.

JavaScript

 

الخطوة الثالثة: استدعاء دالة الاتصال لإنشاء الاتصال

إذن، لدينا مثيل Guacamole Tunnel ومثيل Guacamole Client. هذه هي كل ما نحتاجه لإنشاء اتصال بجهازنا البعيد.

JavaScript

 

هناك شيء واحد يجب تذكره: يجب أن يكون كائن Guacamole.Tunnel الممرر إلى مسstructor Guacamole.Client غير متصل مسبقًا.这是因为، داخليًا، دالة guacClient.connect() ستعمل على استدعاء دالة tunnel.connect()، وإن كان النفق متصلاً مسبقًا، ستفشل هذه العملية.

الآن، سيلاحظ الفطن منكم أنكم لا تزالون لا ترون محتويات جهازكم البعيد على العميل.这是因为 نحن ما زلنا نفتقد خطوة حاسمة.

الخطوة الرابعة: الحصول على شاشة Guacamole وربطها بال DOM

بمجرد إنشاء الاتصال باستدعاء guacClient.connect()، يمكنك عرض شاشة الجهاز البعيد عن طريق ربط شاشة Guacamole (مستوي HTMLDivElement) بال DOM. دعونا نرى كيف يمكننا القيام بذلك.

تخيل أنك تملك صفحة HTML حيث ترغب في عرض شاشة جهازك البعيد.

HTML

 

ثم دعنا نحصل على HTMLDivElement، الذي يحتاج إلى عرضه للمستخدم من guacClient.

JavaScript

 

ها قد ظهرت محتويات جهازك البعيد في DOM. لكن等等، هناك شيء غير صحيح. لا شيء يحدث عند إدخالك من لوحة المفاتيح، ولا حتى عند حركة الفأرة. كيف يمكننا معالجة ذلك؟

الخطوة 5: إعداد أحداث لوحة المفاتيح والفأرة

لإعداد أحداث لوحة المفاتيح والفأرة،你需要 إعداد معالجات الإدخال التي يقدمها guacamole-common-js.

دعنا نبدأ بفهم كيفية إعداد أحداث الفأرة.

JavaScript

 

إعداد لوحة المفاتيح أسهل بكثير لأن هناك مجرد حدثين يجب إعدادهما.

JavaScript

 

الخطوة 6: إعداد أحداث اللمس (اختياري)

يمكنك أيضًا إعداد عميلك لاستقبال إدخالات اللمس،但她 ستصبح أحداث Guacamole.Mouse.

JavaScript

 

كما ترون، نحن نترجم أحداث اللمس إلى أحداث فأرة Guacamole، وهذه الخطوة اختيارية تمامًا. تحتاج إلى إعداد أحداث اللمس فقط إذا كنت تخطط لاستخدام عميلك المخصص على جهاز بشاشة لمس.

الخطوة 7: قطع الاتصال من جهازك البعيد

أخيرًا، وصلنا إلى الخطوة الأخيرة، وهي قطع الاتصال من جهازك البعيد، وهي بسيطة مثل استدعاء طريقة على عميلك.

JavaScript

 

الخاتمة

للإيجاز، Apache Guacamole هو إطار عمل قوي ومتعدد الاستخدامات مفتوح المصدر يوفر طريقة سلسة للوصول إلى سطح المكتب البعيد من خلال بروتوكولات RDP، SSH، أو VNC. مكتبة guacamole-common-js تتيح للمطورين إنشاء عملاء Guacamole مخصصين يمكنهم التواصل مع مكونات Guacamole الأخرى مثل guacamole-common، guaclib، و guacamole-ext.

باتباع الخطوات الموضحة في هذا المقال، يمكنك إعداد عميل guacamole مخصص بسيط يمكنه الاتصال بخوادمك البعيدة ومعالجة أحداث لوحة المفاتيح والفأرة واللمس.

Source:
https://dzone.com/articles/access-remote-desktops-using-apache-guacamole-a-ba