إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
لدعم إمكانية التشغيل التفاعلي عبر البروتوكولات، يحدد IoT Hub مجموعة شائعة من ميزات المراسلة المتوفرة في جميع البروتوكولات التي تواجه الجهاز. يمكن استخدام هذه الميزات في كل من الرسائل من جهاز إلى سحابة والرسائل من السحابة إلى الجهاز.
إشعار
تتوفر بعض الميزات المذكورة في هذه المقالة، مثل المراسلة من السحابة إلى الجهاز والجهاز المزدوج وإدارة الجهاز، في الطبقة القياسية لـ IoT Hub فقط. لمزيد من المعلومات حول مستويات IoT Hub الأساسية والقياسية/المجانية، راجع اختيار طبقة مركز IoT المناسب وحجمه للحل الخاص بك.
يقوم IoT Hub بتنفيذ المراسلة من جهاز إلى سحابة باستخدام نمط مراسلة دفق. تشبه رسائل IoT Hub من جهاز إلى سحابة أحداثمراكز الأحداث أكثر من رسائلناقل خدمة Microsoft Azure، حيث يوجد حجم كبير من الأحداث التي تمر عبر الخدمة التي يمكن للعديد من القراء قراءتها.
تتكون رسالة IoT Hub من:
مجموعة محددة مسبقا من خصائص النظام كما هو موضح لاحقا في هذه المقالة.
مجموعة من خصائص التطبيق. قاموس خصائص السلسلة التي يمكن للتطبيق تعريفها والوصول إليها، دون الحاجة إلى إلغاء تسلسل نص الرسالة. لا يعدل IoT Hub هذه الخصائص أبدًا.
نص الرسالة، والذي يمكن أن يكون أي نوع من البيانات.
ينفذ كل بروتوكول جهاز خصائص الإعداد بطرق مختلفة. لمزيد من المعلومات، راجع الاتصال بمركز IoT باستخدام بروتوكول MQTTوالتواصل مع مركز IoT الخاص بك باستخدام بروتوكول AMQP.
عند إرسال رسائل من جهاز إلى سحابة باستخدام بروتوكول HTTPS أو إرسال رسائل من السحابة إلى الجهاز، يمكن أن تحتوي أسماء الخصائص والقيم على أحرف أبجدية رقمية ASCII فقط، بالإضافة إلى ! # $ % & ' * + - . ^ _ ` | ~ .
تتميز المراسلة من جهاز إلى سحابة باستخدام IoT Hub بالخصائص التالية:
الرسائل من جهاز إلى شبكة سحابية دائمة ويتم الاحتفاظ بها في نقطة النهاية الافتراضية للرسائل/الأحداث لـ IoT Hub لمدة تصل إلى سبعة أيام.
يمكن أن تكون الرسائل من جهاز إلى سحابة على الأكثر 256 كيلوبايت ويمكن تجميعها على دفعات لتحسين عمليات الإرسال. يمكن أن تكون الدُفعات 256 كيلوبايت بحد أقصى.
لا يسمح IoT Hub بالتقسيم العشوائي. يتم تقسيم الرسائل من جهاز إلى سحابة استنادًا إلى deviceIdالأصلي.
كما هو موضح في التحكم في الوصول إلى IoT Hub باستخدام معرف Microsoft Entra، يتيح IoT Hub المصادقة والتحكم في الوصول لكل جهاز.
يمكنك وضع طابع على الرسائل بمعلومات تنتقل إلى خصائص التطبيق. لمزيد من المعلومات، راجع إثراء الرسائل لرسائل IoT Hub من جهاز إلى سحابة.
إشعار
يوفر كل بروتوكول IoT Hub خاصية نوع محتوى الرسالة، والتي يتم احترامها عند توجيه البيانات إلى نقاط النهاية المخصصة. لمعالجة بياناتك بشكل صحيح في الوجهة (على سبيل المثال، يتم التعامل مع JSON كسلسلة قابلة للتحلل بدلا من البيانات الثنائية المشفرة Base64)، قم بتوفير نوع المحتوى المناسب ومجموعة الأحرف للرسالة.
لاستخدام نص الرسالة في استعلام توجيه IoT Hub، قم بتوفير كائن JSON صالح للرسالة وتعيين خاصية نوع المحتوى للرسالة إلى application/json;charset=utf-8.
يوضح المثال التالي نص رسالة صالح وقابل للتوجيه:
{
"timestamp": "2022-02-08T20:10:46Z",
"tag_name": "spindle_speed",
"tag_value": 100
}
خصائص النظام للرسائل من جهاز إلى سحابة
| الخاصية | الوصف | هل المستخدم Settable؟ | الكلمة الرئيسية لاستعلام التوجيه |
|---|---|---|---|
| معرف الرسالة | معرّف يمكن للمستخدم تعيينه للرسالة المستخدمة لأنماط الرد على الطلب. التنسيق: سلسلة حساسة لحالة الأحرف (يصل طولها إلى 128 حرفا) من أحرف ASCII 7 بت الأبجدية الرقمية بالإضافة إلى - : . + % _ # * ? ! ( ) , = @ ; $ '. |
نعم | معرف الرسالة |
| iothub-enqueuedtime | التاريخ والوقت الذي يتلقى فيه IoT Hub الرسالة من جهاز إلى سحابة . | لا | وقت الانتظار |
| معرف المستخدم | معرف يستخدم لتحديد أصل الرسائل. | نعم | معرف المستخدم |
| iothub-connection-device-id | معرّف تم تعيينه بواسطة IoT Hub على رسائل من جهاز إلى سحابة. يحتوي على deviceId الجهاز الذي أرسل الرسالة. | لا | connectionDeviceId |
| iothub-connection-module-id | معرّف تم تعيينه بواسطة IoT Hub على رسائل من جهاز إلى سحابة. يحتوي على moduleId الجهاز الذي أرسل الرسالة. | لا | connectionModuleId |
| iothub-connection-auth-generation-id | معرّف تم تعيينه بواسطة IoT Hub على رسائل من جهاز إلى سحابة. يحتوي على connectionDeviceGenerationId (وفقاً لـ خصائص هوية الجهاز) للجهاز الذي أرسل الرسالة. | لا | connectionDeviceGenerationId |
| أسلوب iothub-connection-auth | أسلوب مصادقة تم تعيينه بواسطة IoT Hub على رسائل من جهاز إلى سحابة. تحتوي هذه الخاصية على معلومات حول أسلوب المصادقة المستخدم لمصادقة الجهاز الذي يرسل الرسالة. | لا | connectionAuthMethod |
| iothub-app-iothub-creation-time-utc | يسمح للجهاز بإرسال وقت إنشاء الحدث عند إرسال البيانات دفعة واحدة. | نعم | create-time-utc |
| iothub-creation-time-utc | يسمح للجهاز بإرسال وقت إنشاء الحدث عند إرسال رسالة واحدة في كل مرة. | نعم | create-time-utc |
| dt-dataschema | يعين مركز IoT هذه القيمة على الرسائل من جهاز إلى سحابة. تحتوي على معرّف طراز الجهاز الذي تم تعيينه في اتصال الجهاز. | لا | $dt-dataschema |
| موضوع dt | اسم المكوّن الذي يقوم بإرسال رسائل من جهاز إلى سحابة. | نعم | موضوع $dt |
خصائص التطبيق للرسائل من جهاز إلى سحابة
الاستخدام الشائع لخصائص التطبيق هو إرسال طابع زمني من الجهاز باستخدام الخاصية iothub-creation-time-utc للتسجيل عند إرسال الجهاز للرسالة. يجب أن يكون تنسيق هذا الطابع الزمني بالتوقيت العالمي المتفق عليه دون معلومات عن المنطقة الزمنية. على سبيل المثال، 2021-04-21T11:30:16Z صالح، ولكنه 2021-04-21T11:30:16-07:00 غير صالح.
{
"applicationId":"00001111-aaaa-2222-bbbb-3333cccc4444",
"messageSource":"telemetry",
"deviceId":"sample-device-01",
"schema":"default@v1",
"templateId":"urn:modelDefinition:mkuyqxzgea:e14m1ukpn",
"enqueuedTime":"2021-01-29T16:45:39.143Z",
"telemetry":{
"temperature":8.341033560421833
},
"messageProperties":{
"iothub-creation-time-utc":"2021-01-29T16:45:39.021Z"
},
"enrichments":{}
}
خصائص النظام للرسائل من السحابة إلى الجهاز
| الخاصية | الوصف | هل المستخدم Settable؟ |
|---|---|---|
| معرف الرسالة | معرّف يمكن للمستخدم تعيينه للرسالة المستخدمة لأنماط الرد على الطلب. التنسيق: سلسلة حساسة لحالة الأحرف (يصل طولها إلى 128 حرفا) من أحرف ASCII 7 بت الأبجدية الرقمية بالإضافة إلى - : . + % _ # * ? ! ( ) , = @ ; $ '. |
نعم |
| رقم التسلسل | رقم (فريد لكل قائمة انتظار أجهزة) تم تعيينه بواسطة IoT Hub لكل رسالة من سحابة إلى جهاز. | لا |
| إلى | وجهة محددة في رسائل من السحابة إلى الجهاز . | لا |
| وقت انتهاء الصلاحية المطلق | تاريخ ووقت انتهاء صلاحية الرسالة. | نعم |
| معرف الارتباط | خاصية سلسلة في رسالة استجابة تحتوي عادة على MessageId الطلب في أنماط الرد على الطلب. | نعم |
| معرف المستخدم | معرف يستخدم لتحديد أصل الرسائل. عندما يقوم IoT Hub بإنشاء رسائل، يكون معرف المستخدم هو اسم مركز IoT. | نعم |
| iothub-ack | مُنشئ رسالة ملاحظات. يتم استخدام هذه الخاصية في رسائل سحابة إلى جهاز لطلب IoT Hub لإنشاء رسائل ملاحظات كنتيجة لاستهلاك الرسالة من قبل الجهاز. القيم المحتملة: none (افتراضية): لم يتم إنشاء رسالة ملاحظات، positive: تلقي رسالة ملاحظات إذا تم إكمال الرسالة، negative: تلقي رسالة ملاحظات إذا انتهت مدة صلاحية الرسالة (أو تم الوصول إلى الحد الأقصى لعدد التسليم) دون إكمالها من قبل الجهاز، أو full: positive وnegative في نفس الوقت. | نعم |
أسماء خصائص النظام
تختلف أسماء خصائص النظام بناءً على نقطة النهاية التي يتم توجيه الرسائل إليها.
| اسم خاصية النظام | مراكز الأحداث | تخزين Azure | ناقل الخدمة | شبكة الأحداث |
|---|---|---|---|---|
| معرّف الرسالة | معرف الرسالة | معرف الرسالة | معرف الرسالة | معرف الرسالة |
| معرف المستخدم | معرف المستخدم | معرف المستخدم | معرف المستخدم | معرف المستخدم |
| معرف جهاز الاتصال | iothub-connection-device-id | connectionDeviceId | iothub-connection-device-id | iothub-connection-device-id |
| معرف وحدة الاتصال | iothub-connection-module-id | connectionModuleId | iothub-connection-module-id | iothub-connection-module-id |
| معرّف إنشاء مصادقة الاتصال | iothub-connection-auth-generation-id | connectionDeviceGenerationId | iothub-connection-auth-generation-id | iothub-connection-auth-generation-id |
| طريقة مصادقة الاتصال | أسلوب iothub-connection-auth | connectionAuthMethod | أسلوب iothub-connection-auth | أسلوب iothub-connection-auth |
| نوع المحتوى | نوع المحتوى | نوع المحتوى | نوع المحتوى | نوع محتوى iothub |
| ترميز المحتوى | ترميز المحتوى | ترميز المحتوى | ترميز المحتوى | ترميز محتوى iothub |
| iothub-enqueuedtime | iothub-enqueuedtime | وقت الانتظار | غير متوفر | iothub-enqueuedtime |
| معرف الارتباط | معرف الارتباط | معرف الارتباط | معرف الارتباط | معرف الارتباط |
| dt-dataschema | dt-dataschema | dt-dataschema | dt-dataschema | dt-dataschema |
| موضوع dt | موضوع dt | موضوع dt | موضوع dt | موضوع dt |
حجم الرسالة
يقيس IoT Hub حجم الرسالة بطريقة غير محددة البروتوكول، مع الأخذ في الاعتبار البيانات الأساسية الفعلية فقط. يتم حساب الحجم بالبايت كمجموع القيم التالية:
- حجم النص بالبايت.
- الحجم بالبايت لكافة قيم خصائص نظام الرسائل.
- الحجم بالبايت لكافة أسماء خصائص المستخدم وقيمها.
تقتصر أسماء الخصائص وقيمها على أحرف ASCII، بحيث يساوي طول السلاسل الحجم بالبايت.
خصائص مكافحة تزييف الهوية
لتجنب تزييف هوية الجهاز في الرسائل من الجهاز إلى السحابة، يضع IoT Hub طابع على كافة الرسائل بالخصائص التالية:
- iothub-connection-device-id
- iothub-connection-auth-generation-id
- iothub-connection-auth-method
يحتوي النوعان الأولان على deviceId وgenerationId للجهاز الأصلي، وفقاً لخصائص هوية الجهاز.
تحتوي الخاصية iothub-connection-auth-method على كائن متسلسل في JSON، مع الخصائص التالية:
{
"scope": "{ hub | device | module }",
"type": "{ symkey | sas | x509 }",
"issuer": "iothub"
}
الخطوات التالية
- للحصول على معلومات بشأن حدود حجم الرسالة في IoT Hub، راجع حصص IoT Hub والتقييد.
- لمعرفة كيفية إنشاء رسائل IoT Hub وقراءتها بلغات برمجة مختلفة، راجع البرنامج التعليمي: إرسال بيانات تتبع الاستخدام من جهاز IoT Plug and Play إلى Azure IoT Hub.
- للتعرف على بنية الأحداث غير المتعلقة بالتتبع التي تم إنشاؤها بواسطة IoT Hub، راجع مخططات أحداث Azure IoT Hub غير المتعلقة بالتتبع.