اختيار بروتوكول اتصال الجهاز

يسمح IoT Hub للأجهزة باستخدام البروتوكولات التالية للاتصالات من جانب الجهاز:

إشعار

يحتوي IoT Hub على دعم ميزات محدود ل MQTT. إذا كان الحل الخاص بك يحتاج إلى دعم MQTT v3.1.1 أو v5، نوصي بدعم MQTT في Azure Event Grid. لمزيد من المعلومات، راجع مقارنة دعم MQTT في مركز IoT وشبكة الأحداث.

للحصول على معلومات حول كيفية دعم هذه البروتوكولات لميزات IoT Hub محددة، راجع إرشادات الاتصالات من جهاز إلى سحابة وإرشادات الاتصالات من السحابة إلى الجهاز.

يوفر الجدول التالي توصيات عالية المستوى لاختيار البروتوكول:

البروتوكول متى يجب استخدام هذا البروتوكول
MQTT
MQTT عبر WebSockets
استخدم على جميع الأجهزة التي لا تتطلب اتصالا بأجهزة متعددة، لكل منها بيانات اعتماد خاصة به لكل جهاز، عبر نفس اتصال TLS.
AMQP
AMQP عبر WebSockets
استخدمه على بوابات الحقول والسحابة للاستفادة من تعدد الاتصال عبر الأجهزة.
HTTPS استخدم للأجهزة التي لا يمكنها دعم البروتوكولات الأخرى.

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

  • نمط السحابة إلى الجهاز. لا يحتوي HTTPS على طريقة فعالة لتنفيذ دفع الخادم. على هذا النحو، عند استخدام HTTPS، تقوم الأجهزة باستطلاع IoT Hub للرسائل من السحابة إلى الجهاز. هذا النهج غير فعال لكل من الجهاز وIoT Hub. بموجب إرشادات HTTPS الحالية، يجب على كل جهاز استطلاع الرسائل كل 25 دقيقة أو أكثر. يؤدي إصدار المزيد من HTTPS إلى تلقي نتائج في IoT Hub مما يؤدي إلى تقييد الطلبات. يدعم MQTT وAMQP دفع الخادم عند تلقي رسائل من سحابة إلى جهاز. فهما يتيحان الدفع الفوري للرسائل من IoT Hub إلى الجهاز. إذا كان زمن انتقال التسليم يمثل مصدر قلق، فإن MQTT أو AMQP هما أفضل بروتوكولات يمكن استخدامها. بالنسبة للأجهزة التي نادراً ما يتم توصيلها، فيمكن استخدام HTTPS أيضًا.

  • بوابات الحقول. يدعم MQTT وHTTPS هوية جهاز واحد فقط (معرف الجهاز بالإضافة إلى بيانات الاعتماد) لكل اتصال TLS. لهذا السبب، هذه البروتوكولات غير مدعومة لسيناريوهات بوابة الحقل التي تتطلب رسائل متعددة الإرسال، باستخدام هويات أجهزة متعددة، عبر اتصال واحد أو مجموعة من الاتصالات المصدر إلى IoT Hub. يمكن لهذه البوابات استخدام بروتوكول يدعم هويات أجهزة متعددة لكل اتصال، مثل AMQP، لنسبة استخدام الشبكة المصدر الخاصة بها.

  • أجهزة بموارد منخفضة. مكتبات MQTT وHTTPS لها بصمة أصغر من مكتبات AMQP. على هذا النحو، إذا كان الجهاز يحتوي على موارد محدودة (على سبيل المثال، أقل من 1 ميغابايت من ذاكرة الوصول العشوائي)، فقد تكون هذه البروتوكولات هي تنفيذ البروتوكول الوحيد المتاح.

  • اجتياز الشبكة. يستخدم بروتوكول AMQP القياسي المنفذ 5671، وينصت MQTT على المنفذ 8883. قد يتسبب استخدام هذه المنافذ في حدوث مشكلات في الشبكات المغلقة أمام بروتوكولات HTTPS. لذا استخدم MQTT عبر WebSockets أو AMQP عبر WebSockets أو HTTPS في هذا السيناريو.

  • حجم البيانات الأساسية. إن MQTT وAMQP هما بروتوكولات ثنائية، ينتج عنهما بيانات أساسية مضغوطة أكثر من HTTPS.

تحذير

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

هام

الوظائف التالية للأجهزة التي تستخدم مصادقة المرجع المصدق (CA) X.509 ليست متاحة بعد بشكل عام، ويجب تمكين وضع المعاينة:

  • HTTPS وMQTT عبر WebSockets وAMQP عبر بروتوكولات WebSockets.
  • تحميلات الملف (كل البروتوكولات).

تتوفر هذه الميزات بشكل عام على الأجهزة التي تستخدم مصادقة X.509 thumbprint. لمعرفة المزيد حول مصادقة X.509 مع IoT Hub، راجع شهادات X.509 المدعومة.

أرقام المنافذ

يمكن للأجهزة الاتصال بـ IoT Hub في Azure باستخدام بروتوكولات مختلفة. عادةً ما يكون اختيار البروتوكول بواسطة المتطلبات المحددة للحل. يسرد الجدول التالي منافذ الصادرة التي يجب أن تكون مفتوحة لجهاز ما ليتمكن من استخدام بروتوكول معين:

البروتوكول المنفذ
MQTT 8883
MQTT عبر WebSockets 443
AMQP 5671
AMQP عبر WebSockets 443
HTTPS 443

عنوان IP لمركز إنترنت الأشياء عرضة للتغيير دون إشعار. لمعرفة كيفية التخفيف من تأثيرات تغييرات عنوان IP لمركز IoT على حل IoT والأجهزة، راجع قسم أفضل الممارسات في عناوين IP لمركز IoT.

الخطوات التالية

لمزيد من المعلومات حول كيفية تنفيذ IoT Hub لبروتوكول MQTT، راجع الاتصال بمركز IoT باستخدام بروتوكول MQTT.