الاشتراك في الأحداث

تكون الأحداث غير متزامنة وتتم إدارتها من خلال خدمة Google Cloud Pub/Sub في موضوع واحد لكل Project. توفر الأحداث تحديثات لجميع الأجهزة والبنى كما يتم ضمان استلام الأحداث طالما لم يتم إبطال رمز الدخول من قِبل المستخدم ولم تنتهِ صلاحية رسائل الأحداث.

الأحداث هي ميزة اختيارية في واجهة برمجة تطبيقات SDM. ويمكن تنفيذها والتحقّق منها بسهولة باستخدام مشروعك على Google Cloud.

تفعيل الأحداث

يمكن تفعيل الأحداث في Device Access وحدة التحكّم. حدد مشروعك في وحدة التحكم، إذا لم تكن قد قمت بذلك بالفعل.

الانتقال إلى Device Access وحدة التحكّم

إذا سبق لك تفعيل الأحداث (على سبيل المثال، أثناء إنشاء المشروع)، يجب أن يحتوي حقل موضوع النشر/الاشتراك في قسم معلومات المشروع على قيمة تُسمّى "معرّف الموضوع" بالتنسيق:

projects/sdm-prod/topics/enterprise-project-id

في حال عدم تفعيل الأحداث:

  1. انقر على رمز في موضوع النشر/الاشتراك واختَر تعديل.
  2. ضَع علامة في المربّع تفعيل الأحداث وانقر على حفظ.
  3. يتم إنشاء رقم تعريف الموضوع بالتنسيق الموضّح أعلاه.

انسخ معرّف الموضوع، ستحتاج إلى إنشاء اشتراك للموضوع حتى يمكن استرداد رسائل الأحداث.

إنشاء اشتراك Pull

اشتراك السحب هو المكان الذي يقدم فيه المشترك طلبات إلى خادم النشر/الاشتراك للحصول على رسائل أحداث في قائمة الانتظار. وهذه طريقة سريعة وسهلة للتحقّق من أنّه يتم إنشاء الأحداث للأجهزة المصرّح بها.

افتح Cloud Shell لمشروعك على Google Cloud:

الانتقال إلى Google Cloud Shell

في موجه Cloud Shell، شغّل الأمر التالي لإنشاء اشتراك سحب لموضوعك، باستخدام subscription-id الذي تريده ومعرّف الموضوع الفريد:

gcloud pubsub subscriptions create subscription-id --topic=projects/sdm-prod/topics/enterprise-project-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].

بدء الأحداث

لبدء أحداث لأول مرة بعد إنشاء الاشتراك في خدمة Pub/Sub، عليك إجراء مكالمة لإدراج أجهزتك كمشغّل لمرة واحدة:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

سيتم نشر الأحداث لجميع البُنى والأجهزة بعد طلب البيانات من واجهة برمجة التطبيقات هذا.

إنشاء أحداث

يتم إنشاء أحداث لجميع التغييرات في حقول السمات، والتي يكون بعضها تلقائيًا، وبعضها يدوي.

على سبيل المثال، إذا تغيّرت درجة الحرارة المحيطة بالقرب من Nest Thermostat، سيتم تلقائيًا إرسال حدث خاص بسمة درجة الحرارة بقيمة ambientTemperatureCelsius جديدة.

لإنشاء سجلّ يدويًا، عليك اتّخاذ أحد الإجراءَين التاليَين:

  1. تغيير حالة جهازك فعليًا، مثل تغيير وضع جهاز Nest Thermostat
  2. شغِّل حدثًا، مثل حركة أو شخص أو صوت على كاميرا Google Nest Cam داخلي.
  3. تنفيذ أمر جهاز باستخدام واجهة برمجة تطبيقات SDM.

عرض الرسائل

يمكن الاطّلاع على رسائل الأحداث في مشروعك على Google Cloud في قسم "اشتراكات النشر/الاشتراك":

الانتقال إلى اشتراكات Google Cloud Pub/Sub

  1. انقر على رقم تعريف الاشتراك الذي أنشأته سابقًا.
  2. على شاشة تفاصيل الاشتراك، من المفترض أن يظهر نشاط على الرسم البياني عدد الرسائل التي لم تتم مصادقتها. يشير ذلك إلى أنّ رسائل الأحداث قد تم إرسالها إلى اشتراكك إذا لم يظهر لك أي نشاط، انتظِر قليلاً أو أنشئ بعض الأحداث الأخرى.
  3. انقر على عرض الرسائل لعرض لوحة الرسائل.
  4. انقر على PULL لعرض الرسائل. ويجب أن تتوافق مع الإجراءات التي استخدمتها لإنشاء الأحداث.

يمكن أيضًا عرض الرسائل في Cloud Shell باستخدام أمر pull أساسي:

gcloud pubsub subscriptions pull subscription-id

لمزيد من المعلومات حول أنواع الاشتراكات وأنواع الأحداث المُرسَلة من خلال واجهة برمجة تطبيقات SDM وكيفية استخدامها، يُرجى الاطّلاع على الأحداث.

إدارة الرسائل

يجب الإقرار بالرسائل بانتظام وإزالتها نهائيًا للحفاظ على تنظيف الاشتراك وتجنُّب تسليم الرسائل بشكل متكرر إلى المشتركين الآخرين. يمكن إزالة جميع رسائل الاشتراك يدويًا من قسم "اشتراكات النشر/الاشتراكات" على النحو التالي:

الانتقال إلى اشتراكات Google Cloud Pub/Sub

  1. انقر على معرّف الاشتراك.
  2. هناك بضع طرق للإقرار والإزالة نهائيًا:
    1. انقر على عرض الرسائل لعرض لوحة الرسائل. ضع علامة في مربّع الاختيار تفعيل رسائل الرد وانقر على سحب لعرض جميع الرسائل والإقرار بها.
    2. انقر على محو الرسائل لإزالة جميع الرسائل الحالية نهائيًا من خلال الإقرار بدون عرضها. انقر على إزالة للتأكيد.

يمكن أيضًا إزالة الرسائل نهائيًا في Cloud Shell باستخدام علامة --auto-ack مع أمر pull أساسي:

gcloud pubsub subscriptions pull subscription-id --auto-ack

إدارة الاشتراكات

يمكن إعداد الاشتراكات بطرق مختلفة، كما هو موضّح في استخدام خصائص الاشتراك.

مع أنّ الطريقة التي تريد بها إدارة الاشتراكات والرسائل متروكة لك، ننصحك باستخدام حسابات الخدمة في تطبيق الإنتاج بدلاً من حساب مستخدم كما فعلت في دليل البدء السريع هذا. يُستخدم حساب الخدمة بواسطة تطبيق أو جهاز افتراضي، وليس شخصًا، ويكون له مفتاح حساب فريد خاص به.

لمزيد من المعلومات عن مصادقة حساب الخدمة باستخدام Device Access، يُرجى الاطِّلاع على الأحداث.