مع كل بروتوكولات المراسلة المتاحة ، قد يكون من الصعب اختيار واحد فقط. ومع وجود العديد من الخيارات ، من السهل جدًا أن تجد نفسك في موقف تحاول فيه تجربة خيار لا يناسبك أنت أو فريقك. Mqtt هو بروتوكول خفيف الوزن لا يتطلب سوى العملاء والوسطاء ، لذا فهو مثالي للمواقف التي لا تريد فيها أي متاعب. سوف تستكشف هذه المقالة ما يمكن لهذا البروتوكول أن يحققه وكيف يحقق هذه الأشياء!
ما هو MQTT؟
Mqtt هو بروتوكول مراسلة خفيف الوزن لا يتطلب سوى العملاء والوسطاء. إنه مثالي للمواقف التي لا تريد فيها أي متاعب أو ضجة ، لأنه لا يتطلب منك سوى القليل.
ما هو بروتوكول المراسلة؟
بروتوكول المراسلة هو مجموعة من القواعد المستخدمة للسماح للتطبيقات على أجهزة مختلفة بالاتصال. صُمم مِقطط خصيصًا لإنترنت الأشياء (IoT). مع توفر مثل هذه المجموعة الواسعة من البروتوكولات الأخرى ، قد يبدو من الغريب إنشاء بروتوكول آخر لهذا الغرض. ولكن نظرًا لأن العديد من الأجهزة والخدمات تعتمد على هذا المجال ، فمن المحتمل أن نشهد المزيد والمزيد منها بمرور الوقت!
ما هو الشيء العظيم في MQTT؟
Mqtt هو حقًا فريد من نوعه ، لأنه يمنحك الكثير من دون أي شيء. لا تحتاج إلى خادم مخصص أو معيد توجيه مثل العديد من البروتوكولات الأخرى ، مما يعني عدم وجود مشكلات في البنية التحتية أيضًا. كل ما تحتاجه هو وسيط موجود بالفعل وأي جهاز متصل بالإنترنت. بفضل جودة العمل ومدى خفة هذا البروتوكول ، تزداد شعبية هذا البروتوكول. نظرًا لأنه مفتوح المصدر ومجاني للاستخدام ، يمكنك البدء بسهولة دون الحاجة إلى دفع أي رسوم أو تكاليف اشتراك. ومع دعم الوسيط المدمج في مكتبة MQTT لـ Arduino ، نحن متحمسون لمعرفة المنتجات الرائعة التي ستأتي في طريقنا.
ما هي مميزات MQTT؟
Mqtt هو أحد أفضل الأمثلة على بروتوكول رسائل بسيط وخفيف الوزن ستجده. تتمثل نقطة بيعه الرئيسية في مدى سهولة استخدامه – يمكن لأي جهاز متصل بالإنترنت الاستفادة مما يقدمه هذا البروتوكول. ولكن هناك أكثر من مجرد سهولة استخدام لهذا البروتوكول. دعنا نستكشف ما يمكن أن تتوقعه أيضًا!
أمثلة على استخدام MQTT
أ. أجهزة إنترنت الأشياء في المصنع الذي يتحكم في المضخات والصمامات
ب. محطة طقس مزودة بجهاز استشعار يرسل تقارير إلى قاعدة بيانات على السحابة
ج. نظام إنذار يبلغ عند فتح الأبواب أو غلقها
د. تضاء بعض الأضواء في المكتب عند اكتشاف الحركة
1. ما هو الـ MQTT وما هي مميزاته؟
MQTT تعني النقل عن بعد لخدمة وضع الرسائل في قائمة انتظار ، والذي قد يبدو معقدًا ولكنه يعني ببساطة أنه وسيلة لأجهزة إنترنت الأشياء للتواصل مع بعضها البعض باستخدام الإنترنت. يتم تشغيله فوق TCP / IP مثل HTTP و SMTP وما إلى ذلك ، ولكن على عكس HTTP المخصص للاتصال عبر الإنترنت ، يتم استخدام MQTT مع الأجهزة المتصلة ببعضها البعض بشبكة ، وعادة ما تكون شبكة IP. يتم استخدامه بشكل شائع في إنترنت الأشياء مع الأجهزة المضمنة منخفضة الطاقة التي تتصل بأشياء مثل لوحات Raspberry Pi أو Arduino.
2. كيف يعمل؟
إنه يعمل نوعًا ما مثل البريد الإلكتروني. ينشر جهاز إنترنت الأشياء رسالة إلى موضوع ما. إنه يشبه إرسال بريد إلكتروني إلى شخص ما ، ولكن بدلاً من شخص ما ، فهو اسم موضوع. يمكن أن تحتوي الرسالة على ما يصل إلى 2 كيلوبايت من البيانات ويتم إرسالها كحزمة.
يستمع مشترك MQTT الثاني للحزم ذات المعرف الفريد الخاص به أو معرّف العميل. ثم يفعل شيئًا مع الرسالة. يبدو الأمر كما لو أن شخصًا ما يتلقى بريدًا إلكترونيًا ، يفعل شيئًا به ؛ اقرأه ، أرسله إلى مكان آخر وما إلى ذلك.
تتمتع MQTT بمستوى جودة الخدمة (QoS) مما يعني أنه يمكن أن تكون هناك مستويات أولوية مختلفة للرسائل. يتم تعيين مستوى جودة الخدمة من قبل العميل وكل حزمة يتم إرسالها لها مستوى الأولوية هذا.
3. فوائد MQTT
إنه خفيف الوزن ، ويعمل على TCP / IP ، وأقل حملًا من HTTP
يتم تخزين الرسائل في قائمة انتظار حتى يمكن إرسالها إلى الجهاز الوجهة
لديها دعم إعادة الاتصال المدمج
يمكن أن يكون لكل عميل تكوين الأمان الخاص به للمصادقة والتشفير
تسمح QoS لأنواع الرسائل المختلفة بأن يكون لها مستويات أولوية مختلفة
4. تطبيقات MQTT
بعض الأمثلة على كيفية استخدامها في العالم الحقيقي هي مع M2M Alliance ، وهو مشروع يهدف إلى ربط “الأشياء” بمنصة آمنة لنقل البيانات بين الأجهزة. حالة استخدام أخرى مع مشروع CEPH. هذا نظام تخزين سحابي يمكنه تخزين الملفات ومشاركتها في وقت واحد لعدة مستخدمين. يستخدم MQTT لتأمين الوصول الموزع عن طريق تشفير البيانات ، مما يسمح بنقلها بين أجهزة إنترنت الأشياء باستخدام بوابات مختلفة دون الحاجة إلى القلق بشأن أمان البيانات.
5. الشروع في MQTT
أول شيء يحتاجه المرء هو عميل MQTT ؛ هذا هو التطبيق الذي يرسل الرسائل ويستقبلها. تحتوي مؤسسة Raspberry Pi على دليل لبدء استخدام MQTT على جهاز Pi الخاص بك. هناك أيضًا أدلة أخرى متوفرة مثل هذا الدليل من Hackster والذي يمنحك الكود للتشغيل على لغة برمجة Python.
أفضل دورات MQTT عبر الإنترنت
- إتقان MQTT
- بروتوكول MQTT الرئيسي
- تطوير تطبيق Android MQTT Client
- MQTT Masterclass
- إتقان بروتوكول MQTT: دليل المبتدئين إلى المستوى المتقدم
- إنترنت الأشياء: MQTT مع Adafruit و App Inventor و ESP8266
- MQTT Nodemcu (ESP8266) مع Nodered و Wifi و Bluetooth
TLS مقابل SSL لبناء وسيط MQTT
مميزات استخدام TLS:
-الأمن: يوفر TLS اتصالاً آمنًا بين العميل والوسيط. يساعد هذا في الحماية من هجمات الرجل في الوسط والتنصت.
-المصادقة: توفر TLS مصادقة للوسيط والعميل ، مما يساعد على ضمان أن العملاء المصرح لهم فقط هم القادرون على الاتصال بالوسيط.
-التشفير: يوفر TLS تشفير البيانات بين العميل والوسيط ، مما يساعد على حماية المعلومات من رؤيتها من قبل الأفراد غير المصرح لهم.
سلبيات استخدام TLS:
-الأداء: يمكن أن تضيف TLS النفقات العامة إلى الاتصالات ، مما قد يقلل من الأداء.
-الشهادات: من أجل استخدام TLS ، تحتاج إلى شهادات لكل من العميل والوسيط. قد يكون من الصعب الحصول على هذه الشهادات وقد يكون استخدامها مكلفًا ، مما قد يؤدي إلى زيادة تكلفة استخدام TLS.
مميزات استخدام SSL:
– الأمان: يوفر بروتوكول SSL اتصالاً آمنًا بين العميل والوسيط ، تمامًا مثل TLS. كما أنه يساعد في الحماية من هجمات الرجل في الوسط والتنصت.
-الشهادات: نظرًا لأن SSL مبني على TLS ، يمكنك استخدام نفس الشهادات لتشفير حركة المرور.
سلبيات استخدام SSL:
– الأداء: سيضيف التشفير بين العميل والوسيط عبءًا على الاتصالات ، مما يقلل من الأداء.
-استخدام الذاكرة: سيستخدم بروتوكول SSL ذاكرة أكثر من البروتوكولات الأخرى لأنه يحافظ على جلسة تشفير / فك تشفير مع الوسيط.
-مشكلات الإصدار: بروتوكول SSL هو بروتوكول أقدم ، ولا يدعم بعض الميزات التي يوفرها TLS (على سبيل المثال ، الأصفار الأحدث).
كما ترى ، يوفر كل من TLS و SSL الأمان والمصادقة والتشفير للاتصال بين العملاء والوسطاء ؛ لكنهم يفعلون ذلك بطرق مختلفة قليلاً. لا يوجد فائز واضح عندما يتعلق الأمر بتحديد ما إذا كان يجب عليك استخدام TLS أو SSL لوسيط MQTT الخاص بك ، لأن القرار سيعتمد على ما تحتاجه من بنيتك التحتية ومقدار الوقت / المال المتاح لديك لإنفاقه.
في الختام أود أن أقول إن هناك إجابة صحيحة حسب احتياجات المشروع. في هذه الحالة ، من الأفضل استخدام TLS ، لأنه يوفر مزايا أكثر من SSL.
أهم 5 أسباب لاستخدام بروتوكول MQTT في مشاريع إنترنت الأشياء الخاصة بك
MQTT هو بروتوكول مراسلة من آلة إلى آلة (M2M) ، مصمم للأجهزة ذات الموارد المحدودة ، والذي يربط الأجهزة بالسحابة.
1. إنه خفيف الوزن وسهل الاستخدام: MQTT هو بروتوكول مراسلة للنشر / الاشتراك مصمم ليكون خفيف الوزن وسهل الاستخدام.
2. له مساحة صغيرة: يستخدم MQTT حوالي 1/10 من عرض النطاق الترددي لـ HTTP ، مما يجعله مثاليًا لتطبيقات إنترنت الأشياء ذات موارد الشبكة المحدودة.
3. يدعم QoS: يدعم MQTT جودة الخدمة (QoS) ، والتي تضمن تسليم الرسائل في زمن الوصول المطلوب أو الجودة المطلوبة.
4. يمكن تشغيله على أي شبكة: MQTT هو بروتوكول متعدد المنصات يمكن تشغيله على شبكات WiFi أو Bluetooth منخفضة الطاقة (BLE) أو شبكات 2G / 3G الخلوية.
5. يحتوي على العديد من مكتبات العملاء المتاحة في العديد من لغات البرمجة: توجد مكتبات عملاء لـ C و C ++ و JavaScript و Arduino IDE و Python و Java.
كيفية إعداد وسيط MQTT باستخدام Docker Container على جهاز الكمبيوتر الخاص بك أو خادم VPS؟
MQTT هو بروتوكول رسائل من آلة إلى آلة (M2M) / “إنترنت الأشياء” ، تم تصميمه ليكون وسيلة نقل رسائل خفيفة الوزن للغاية للنشر / الاشتراك. إنه مفيد للاتصالات مع المواقع البعيدة حيث تتطلب مساحة صغيرة من التعليمات البرمجية و / أو يكون عرض النطاق الترددي للشبكة أعلى من سعره.
في هذه المقالة ، سنوضح لك كيفية إعداد وسيط MQTT باستخدام حاوية Docker على جهاز الكمبيوتر الخاص بك أو خادم VPS.
Docker هو محرك حاويات يساعدك على نشر تطبيقاتك بسهولة بكل تبعياتها. يوفر بيئة متسقة على كل مضيف Docker ، ويسمح لك بتوفير الوقت وتحسين قابلية نقل التعليمات البرمجية الخاصة بك بين توزيعات Linux المختلفة. على سبيل المثال ، إذا كان هناك أي تطبيق يعتمد على عدد كبير من مكتبات النظام أو بعض إصدارات المكتبة النادرة ، وبالتالي لا يسهل نقله ، فيمكنك ببساطة تغليفه بالكامل ونشره كحاوية Docker.
1) تثبيت Docker لنظام التشغيل Windows / Mac
يتوفر Docker لمستخدمي Microsoft Windows و Mac OS X. يمكنك تنزيل الإصدار المناسب من هنا: https://docs.docker.com/docker-for-windows/install/.
2) تثبيت Docker-compose على مضيفك
من أجل نشر وسيط MQTT محلي الصنع الخاص بنا بسهولة ، سوف نستخدم أداة إنشاء عامل الإرساء. يتيح لك تحديد وتشغيل تطبيقات Docker متعددة الحاويات باستخدام ملف YAML بسيط. يمكنك معرفة المزيد حول تكوين عامل الإرساء من هنا: https://docs.docker.com/compose/.
يمكنك تنزيل أداة إنشاء عامل ميناء من هنا: https://github.com/docker/compose/releases/. بمجرد الانتهاء من ذلك ، يجب أن تكون قادرًا على تشغيل أمر docker-compose في جهازك والتحقق من إصداره أو استخدام أي من أوامره الفرعية.
مصطلحات Docker الأساسية لهذه المقالة:
1) “حاوية Docker” هي العملية التي يتم تشغيلها في الخلفية عند تشغيل صورة باستخدام أمر docker run. يسمى مثيل قيد التشغيل للصورة “الحاوية” ، فيما يتعلق بإنشائها في بناء عامل الإرساء.
2) “صورة Docker” عبارة عن نموذج للقراءة فقط يحتوي على إرشادات لإنشاء حاوية عامل إرساء. يتكون من سلسلة من طبقات نظام الملفات تمثل حالات مختلفة من الصورة النهائية التي نريد إنشاءها
3) يبني الأمر copy at docker build صورة عن طريق قراءة وصفها من Dockerfile في دليل العمل الحالي ثم تنفيذ الأمر المناسب في طبقة جديدة أعلى الصورة الحالية.
4) “المجلدات” هي مجلدات تسمح لك بتعيين المجلدات المحلية على الجهاز المضيف إلى الدلائل الموجودة داخل حاويات عامل الإرساء. يكون هذا مفيدًا ، على سبيل المثال ، إذا كنت تريد تخزين بعض البيانات حول الحاوية أو ملفات التكوين الخاصة بك. يمكنك إنشاء وحدة تخزين عن طريق تحديد مسار المجلد من نظامك المضيف باستخدام docker run.
ملف YAML هو ملف تكوين يحتوي على معلومات للاتصال بقاعدة بيانات خارجية وخادم MQTT وما إلى ذلك ، بالإضافة إلى معلومات حول كيفية إنشاء الحاويات وماهية الحاويات. سننشئ ملف YAML لتهيئة وسيطنا في القسم التالي.
3) إنشاء ملف YAML لتهيئة وسيط MQTT الخاص بك
تتكون ملفات YAML عادةً من عدة أزواج من المفاتيح والقيمة ، والتي ترتبط بنقطتين (“:”). يمكنك معرفة المزيد عن YAML من هنا: https://en.wikipedia.org/wiki/YAML#Syntax.
في حالتنا ، سننشئ ملف YAML لتهيئة وسيط MQTT على النحو التالي:
الإصدار: “3”
في هذا القسم من YAML ، نحدد اسم الحاوية كـ “homer-mqtt” ونحدد الصورة التي يجب استخدامها لإنشائها. في هذه الحالة ، سنختار الصورة “davidtgoldblatt / homer-mqtt” من Docker Hub من هنا: https://hub.docker.com/_/homer-mqtt/.
في ملف YAML الخاص بنا ، نعلن أيضًا عن مجلدين على النحو التالي:
أحجام:
– /var/run/docker.sock:/var/run/docker.sock
ستسمح لنا هذه الأحجام بالتخزين المستمر لحاوية عامل الإرساء ، مما يسمح بإعداداتنا للاستمرار خلال عمليات إعادة تشغيل الخادم وتعطله. يمكنك معرفة المزيد حول المجلدات من هنا: https://docs.docker.com/engine/userguide/dockervolumes/.
من أجل تحديد تفاصيل قاعدة البيانات الخاصة بنا ، نضيف قسم “db_addresses” مع الإدخالات التالية:
عناوين_ db:
– “المضيف = 172.17.0.2 المنفذ = 3306 مستخدم = homer dbname = homer”
في المثال أعلاه ، نحدد مضيفًا ومنفذًا لمثيل قاعدة البيانات الخاصة بنا. لاحظ أنه عند تحديد مستخدم ، يجب عليك إضافة رمز “@” قبل اسم المستخدم. هذا لأن اسم المستخدم يتكون من أحرف وأرقام في أنظمة Unix. إذا حذفت ذلك ، فإن Docker يشكو من أخطاء مثل هذا:
عليك الهروب من الأحرف الخاصة مثل @ أو *
من أجل تحديد بيانات اعتماد قاعدة البيانات الخاصة بنا ، نضيف قسم “database_password” على النحو التالي:
database_password: “homerun1”
في المثال أعلاه ، يجب عليك استخدام كلمة المرور التي تختارها. إذا كنت ترغب في إعداد كلمة مرور لقاعدة البيانات لأول مرة ، يمكنك الاطلاع على دليلنا حول كيفية إنشاء مستخدم جذر جديد بدون كلمة مرور هنا: https://homer-mqtt.readthedocs.io/en/latest/configure_database_and_create_new_root_user .لغة البرمجة
من أجل تحديد تفاصيل خادم MQTT ، نضيف قسم “mqtt_server” بالإدخالات التالية:
mqtt_server:
– الاسم: mqtt host: 172.17.0.1 المنفذ: 8883 اسم المستخدم: كلمة مرور “homerun”: “homerun1”
في المثال أعلاه ، قمنا بتشغيل الوسيط على المنفذ 8883 واستخدمنا اسم المستخدم “homerun” وكلمة المرور لـ “homerun1” ، والتي أنشأناها في قاعدة البيانات الخاصة بنا.
4) قم بتشغيل وسيط MQTT الخاص بك مع Docker
في هذه الخطوة ، سننشئ حاوية عامل إرساء من ملف YAML الخاص بنا ونشغلها.
للقيام بذلك ، قم بالقرص المضغوط إلى الدليل حيث لديك ملف YAML وقم بتشغيل “docker-compose up” على النحو التالي:
$ عامل الإرساء
سيقوم هذا الأمر بإنشاء حاوية عامل إرساء جديدة بناءً على الوصف الموجود في ملف YAML الخاص بك وبدء تشغيله.
إذا كنت تريد أن تبدأ هذا في الخلفية ، فاستخدم “docker-compose up -d” بدلاً من ذلك. إذا كنت تريد طباعة سجلات حاوية عامل الإرساء ، فقم بتشغيل “docker-compose logs mqttclient” على النحو التالي:
سجلات docker-compose mqttclient
يمكنك أيضًا مشاهدة حاوية عامل الإرساء تعمل في الوقت الفعلي باستخدام “docker-compose ps” على النحو التالي:
$ عامل تركيب ps
5) تشغيل عميل MQTT الخاص بك مع Docker
في هذه الخطوة ، سننشئ حاوية عامل إرساء من ملف YAML الخاص بنا ونشغلها.
للقيام بذلك ، قم بالقرص المضغوط إلى الدليل حيث لديك ملف YAML وقم بتشغيل “docker-compose up” على النحو التالي:
$ عامل الإرساء
سيقوم هذا الأمر بإنشاء حاوية عامل إرساء جديدة بناءً على الوصف الموجود في ملف YAML الخاص بك وبدء تشغيله.
إذا كنت تريد أن تبدأ هذا في الخلفية ، فاستخدم “docker-compose up -d” بدلاً من ذلك. يمكنك أيضًا مشاهدة حاوية عامل الإرساء تعمل في الوقت الفعلي باستخدام “docker-compose ps” على النحو التالي:
$ عامل تركيب ps
6) استخدام عميل MQTT الخاص بك مع Docker
الآن بعد أن تم إعداد ملف YAML الخاص بنا ، يمكننا الآن البدء في استخدام عميل MQTT الخاص بنا مع Docker.
للقيام بذلك ، انتقل إلى الدليل الذي يوجد به ملف YAML الخاص بك وقم بتشغيل “docker exec” على النحو التالي:
docker exec -it mqttclient / bin / bash
يجب أن تشاهد الآن دليلًا يسمى “/ home / homerun” (وهو الدليل الرئيسي لحاوية عامل الإرساء) ويجب أن تكون داخل هذا الدليل.
يمكنك الآن رؤية قواعد البيانات الخاصة بك عن طريق كتابة “mysql -uroot -proot” على النحو التالي:
$ mysql -uroot -proot
يجب أن تشاهد جميع قواعد البيانات الخاصة بك على الشاشة. يمكنك معرفة كيفية إنشاء مستخدم جذر جديد بدون كلمة مرور لمثيل MySQL هنا: https://homer-mqtt.readthedocs.io/en/latest/configure_database_and_create_new_root_user.html
لتشغيل أمر MQTT client في Docker ، تحتاج إلى كتابة “sbin / mqtt” على النحو التالي:
$ sbin / mqtt -c /home/homerun/config.yaml
في المثال أعلاه ، نحدد ملف تكوين بعلامة -c ، والذي يقرأ إعدادات MQTT الخاصة بنا من ملف التكوين الذي أنشأناه في هذا البرنامج التعليمي.
للتحقق مما إذا كان عميل MQTT الخاص بك يعمل ، يمكنك استخدام “docker-compose ps” على النحو التالي:
$ عامل تركيب ps
في المثال أعلاه ، تم بدء تشغيل عميل MQTT الخاص بنا بنجاح. يجب أن تشاهد الآن جميع قواعد البيانات الخاصة بك على الشاشة.
لتشغيل أمر MQTT client في Docker ، تحتاج إلى كتابة “sbin / mqtt” على النحو التالي:
$ sbin / mqtt -c /home/homerun/config.yaml
في المثال أعلاه ، نحدد ملف تكوين بعلامة -c ، والذي يقرأ إعدادات MQTT الخاصة بنا من ملف التكوين الذي أنشأناه في هذا البرنامج التعليمي.
للتحقق مما إذا كان عميل MQTT الخاص بك يعمل ، يمكنك استخدام “docker-compose ps” على النحو التالي:
$ عامل تركيب ps
في المثال أعلاه ، تم بدء تشغيل عميل MQTT الخاص بنا بنجاح. يجب أن تشاهد الآن جميع قواعد البيانات الخاصة بك على الشاشة ويمكنك محاولة نشر بعض الرسائل لاختبار ما إذا كان كل شيء يعمل بشكل جيد:
docker exec -it mqttclient / bin / bash
$ sbin / mqtt نشر -t “اختبار” -ساعة 172.17.0.1 -m “مرحبًا بالعالم!”
docker exec -it mqttclient / bin / bash
$ sbin / mqtt Subscribe -t “test” -h 172.17.0.1 -u mqttuser
7) تنظيف عميل MQTT الخاص بك باستخدام Docker
لإيقاف حاوية عامل الإرساء ، تحتاج إلى تشغيل “إنشاء عامل الإرساء” على النحو التالي:
$ عامل الإرساء يؤلف
8) تنظيف عميل MQTT باستخدام Docker Volumes
لإيقاف إنشاء قاعدة بيانات mysql ومستخدم mqtt ، يمكنك استخدام علامة -v.
$ docker-compose down -v
يمكنك أيضًا تنظيف بيئتك عن طريق حذف الدليل الذي يحتوي على ملف YAML الخاص بك.
تم إنشاء قاعدة بيانات Mysql و mqtt بنجاح! ستتم إزالتها تلقائيًا عند إزالة حاوية عامل الإرساء. يمكنك الآن الخروج من هذه الصدفة عن طريق كتابة “خروج”.
في هذا البرنامج التعليمي ، رأينا كيفية تكوين عميل MQTT الخاص بك من خلال حاوية Docker.
استنتاج
MQTT هو بروتوكول اتصال من آلة إلى آلة (M2M) أو بروتوكول اتصال “إنترنت الأشياء”. تم تصميمه كوسيلة نقل رسائل خفيفة الوزن للغاية للنشر / الاشتراك. MQTT مفيد لتوصيل أجهزة الاستشعار منخفضة الطاقة ، والأجهزة القابلة للارتداء ، والأشياء الصغيرة الأخرى المتصلة بالإنترنت بالسحابة. نظرًا لأن MQTT تستخدم نموذج نشر / اشتراك ، فهي مثالية للأجهزة التي تحتاج إلى إرسال البيانات بشكل غير متكرر أو حيث يكون النطاق الترددي للشبكة أعلى من سعره.
