متى تستخدم MQTT بدلاً من HTTP في واجهات برمجة التطبيقات؟

Ashley Innocent

Ashley Innocent

13 مارس 2026

متى تستخدم MQTT بدلاً من HTTP في واجهات برمجة التطبيقات؟

enterprise.banner.title

enterprise.banner.feature1

enterprise.banner.feature2

enterprise.banner.feature3

enterprise.banner.ctaB

ملخص سريع (TL;DR)

استخدم MQTT لأجهزة إنترنت الأشياء (IoT) ذات البطارية المحدودة، والشبكات غير الموثوقة، أو أنماط المراسلة من نوع النشر والاشتراك (pub-sub). استخدم HTTP لواجهات برمجة التطبيقات (APIs) القياسية للويب/الجوال. يستخدم MQTT رؤوسًا بحجم 2 بايت مقابل أكثر من 100 بايت في HTTP، مما يجعله مثاليًا للأجهزة ذات الموارد المحدودة. تطبيق Modern PetstoreAPI الحديث يطبق MQTT لأطواق تتبع الحيوانات الأليفة وأجهزة التغذية الذكية.

مقدمة

يحتاج طوق تتبع حيوانك الأليف إلى إرسال تحديثات الموقع كل 5 دقائق. يعمل ببطارية على شكل عملة معدنية من المفترض أن تدوم لمدة 6 أشهر. باستخدام HTTP، ستنفد البطارية في أسبوعين. باستخدام MQTT، ستدوم الستة أشهر كاملة.

HTTP هو المعيار لواجهات برمجة التطبيقات (APIs)، ولكنه مصمم لمتصفحات الويب، وليس لأجهزة إنترنت الأشياء (IoT). تم بناء MQTT (بروتوكول نقل القياس عن بعد عبر قائمة انتظار الرسائل) للأجهزة ذات الموارد المحدودة والنطاق الترددي المنخفض والشبكات غير الموثوقة.

يستخدم Modern PetstoreAPI بروتوكول HTTP لتطبيقات الويب والجوال، ولكن MQTT لأجهزة إنترنت الأشياء: أطواق تتبع الحيوانات الأليفة، وأجهزة التغذية الذكية، وأجهزة مراقبة الصحة.

💡
إذا كنت تقوم ببناء أو اختبار واجهات برمجة تطبيقات إنترنت الأشياء (IoT APIs)، فإن Apidog يدعم اختبار MQTT جنبًا إلى جنب مع HTTP. يمكنك اختبار أنماط النشر والاشتراك (pub-sub)، والتحقق من تنسيقات الرسائل، ومحاكاة فشل الشبكة.
button

في هذا الدليل، ستتعلم متى يتفوق MQTT على HTTP، وسترى أمثلة حقيقية من Modern PetstoreAPI، وتكتشف كيفية اختيار البروتوكول المناسب لحالة الاستخدام الخاصة بك.

ما هو MQTT؟

MQTT هو بروتوكول مراسلة خفيف الوزن من نوع النشر والاشتراك (pub-sub) مصمم لإنترنت الأشياء (IoT).

كيف يعمل MQTT

تنشر الأجهزة الرسائل إلى مواضيع (topics). تشترك الأجهزة الأخرى في هذه المواضيع:

Publisher (Pet Collar):
  Topic: pets/019b4132/location
  Payload: {"lat":37.7749,"lng":-122.4194,"battery":85}

Subscriber (Mobile App):
  Subscribe to: pets/019b4132/location
  Receives: {"lat":37.7749,"lng":-122.4194,"battery":85}

يتواجد وسيط MQTT (MQTT Broker) في المنتصف، ويوجه الرسائل من الناشرين إلى المشتركين.

الميزات الرئيسية لـ MQTT

1. رؤوس صغيرة جدًا - MQTT: 2 بايت، HTTP: 100-500 بايت

2. اتصالات مستمرة - يحافظ MQTT على الاتصالات مفتوحة

3. جودة الخدمة (QoS) - QoS 0/1/2 لضمانات التسليم

4. الوصية الأخيرة (Last Will) - رسالة تُرسل إذا تم قطع اتصال الجهاز بشكل غير متوقع

5. الرسائل المحتفظ بها (Retained messages) - يحتفظ الوسيط بالرسالة الأخيرة للمشتركين الجدد

مقارنة بين MQTT و HTTP

الميزة MQTT HTTP
حجم الرأس 2 بايت 100-500 بايت
النمط نشر-اشتراك (Pub-Sub) طلب-استجابة (Request-Response)
الاتصال مستمر لكل طلب
النطاق الترددي منخفض جداً أعلى
تأثير البطارية ضئيل كبير
دعم المتصفح عبر WebSocket أصلي

مثال على النطاق الترددي

1000 تحديث للموقع يوميًا:

يستخدم MQTT نطاقًا تردديًا أقل بـ 8 مرات.

متى يتفوق MQTT

1. أجهزة إنترنت الأشياء (IoT) ذات البطارية المحدودة

طوق تتبع الحيوانات الأليفة:

السبب: اتصال مستمر، رؤوس صغيرة، وقت أقل لتشغيل الراديو.

2. الشبكات غير الموثوقة

أجهزة إنترنت الأشياء الخلوية ذات التغطية المتقطعة:

3. الاتصال من كثير إلى كثير

سيناريو جهاز التغذية الذكي للحيوانات الأليفة:

Feeder 1 → pets/019b4132/feeding
Feeder 2 → pets/019b4127/feeding
App 1 → subscribes to pets/+/feeding (all pets)
App 2 → subscribes to pets/019b4132/feeding (one pet)

4. بيانات الاستشعار في الوقت الفعلي

جهاز مراقبة صحة الحيوانات الأليفة يرسل تحديثات كل ثانية:

متى يتفوق HTTP

1. تطبيقات الويب/الجوال القياسية

HTTP عالمي:

2. أنماط الطلب والاستجابة

الحصول على تفاصيل الحيوانات الأليفة:

GET /pets/019b4132
200 OK
{"name":"Fluffy","species":"CAT"}

HTTP أبسط للطلب والاستجابة.

3. متطلبات التخزين المؤقت (Caching)

يعمل التخزين المؤقت في HTTP بشكل مباشر:

MQTT لا يحتوي على تخزين مؤقت.

4. واجهات برمجة تطبيقات RESTful

رموز حالة HTTP، الأساليب، والدلالات:

كيف يستخدم Modern PetstoreAPI بروتوكول MQTT

يطبق Modern PetstoreAPI بروتوكول MQTT لأجهزة إنترنت الأشياء.

أطواق تتبع الحيوانات الأليفة

الطوق ينشر الموقع:

Topic: pets/019b4132/location
QoS: 1 (at least once)
Payload: {
  "lat": 37.7749,
  "lng": -122.4194,
  "battery": 85,
  "timestamp": "2026-03-13T10:30:00Z"
}

تطبيق الجوال يشترك:

const mqtt = require('mqtt');
const client = mqtt.connect('mqtts://mqtt.petstoreapi.com');

client.subscribe('pets/019b4132/location');

client.on('message', (topic, message) => {
  const location = JSON.parse(message);
  updateMap(location.lat, location.lng);
});

أجهزة التغذية الذكية

جهاز التغذية يشترك في الجدول الزمني:

Topic: pets/019b4132/feeding-schedule
Retained: true
Payload: {
  "times": ["08:00", "18:00"],
  "amount": 100
}

جهاز التغذية ينشر أحداث التغذية:

Topic: pets/019b4132/feeding-events
Payload: {
  "timestamp": "2026-03-13T08:00:15Z",
  "amount": 100,
  "dispensed": true
}

أجهزة مراقبة الصحة

جهاز المراقبة ينشر البيانات الحيوية:

Topic: pets/019b4132/health
QoS: 0 (fire and forget, high frequency)
Payload: {
  "heartRate": 120,
  "temperature": 38.5,
  "activity": "resting"
}

اختبار MQTT باستخدام Apidog

يدعم Apidog اختبار MQTT جنبًا إلى جنب مع HTTP والبروتوكولات الأخرى.

اختبار النشر والاشتراك (Pub-Sub) في MQTT

  1. الاتصال بوسيط MQTT
  2. الاشتراك في المواضيع
  3. نشر رسائل اختبار
  4. التحقق من تنسيق الرسالة
  5. اختبار مستويات جودة الخدمة (QoS)

محاكاة فشل الشبكة

المقارنة مع HTTP

اختبر نفس الوظائف باستخدام كلا البروتوكولين:

الخلاصة

يخدم MQTT و HTTP أغراضًا مختلفة. استخدم MQTT لأجهزة إنترنت الأشياء ذات الموارد المحدودة. استخدم HTTP لواجهات برمجة التطبيقات القياسية للويب/الجوال.

يوضح Modern PetstoreAPI كيفية استخدام كليهما: HTTP لواجهات برمجة التطبيقات الموجهة للمستخدمين، وMQTT لأجهزة إنترنت الأشياء. يعتمد البروتوكول الصحيح على قيودك، وليس على أيهما "أفضل".

اختبر كلا البروتوكولين باستخدام Apidog للعثور على الأنسب لحالة الاستخدام الخاصة بك.

button

الأسئلة الشائعة

هل يمكن أن يعمل MQTT عبر HTTP؟

يمكن لـ MQTT أن يعمل عبر WebSocket، والذي يعمل بدوره عبر HTTP. يساعد هذا في اختراق جدران الحماية ولكنه يفقد بعض فوائد كفاءة MQTT.

ما هي مستويات QoS في MQTT؟

هل MQTT آمن؟

نعم، يدعم MQTT تشفير TLS (MQTTS) ومصادقة اسم المستخدم/كلمة المرور. يستخدم Modern PetstoreAPI بروتوكول MQTTS لجميع أجهزة إنترنت الأشياء.

هل يمكن للمتصفحات استخدام MQTT؟

يمكن للمتصفحات استخدام MQTT عبر WebSocket. تدعم مكتبات مثل MQTT.js بيئات المتصفحات.

كيف يقارن MQTT بـ WebSocket؟

MQTT هو بروتوكول يمكن أن يعمل عبر WebSocket. WebSocket هو طبقة نقل. يضيف MQTT ميزات النشر والاشتراك (pub-sub) و QoS وميزات خاصة بإنترنت الأشياء (IoT) فوق WebSocket.

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات

متى تستخدم MQTT بدلاً من HTTP في واجهات برمجة التطبيقات؟