
MQTT-C هو عميل MQTT V3.1.1 مكتوب في C. MQTT هو بروتوكول مراسلة قائم على الناشر خفيفة الوزن ويستخدم عادةً في تطبيقات إنترنت الأشياء وتطبيقات الشبكات حيث من المتوقع وجود روابط عالية الدقة وترابط البيانات المنخفضة. الغرض من MQTT-C هو توفير عميل MQTT محمول ، مكتوب في C ، للأنظمة المدمجة والكمبيوتر على حد سواء. يقوم MQTT-C بذلك من خلال توفير طبقة تجريد منصة شفافة (PAL) مما يجعل النقل إلى منصات جديدة سهلة. MQTT-C آمن تمامًا ، ولكن يمكن أن يعمل أيضًا بشكل جيد تمامًا على أنظمة واحدة متخلفًا مما يجعل MQTT-C مناسبًا جيدًا للأنظمة المدمجة وموانئون. أخيرًا ، MQTT-C صغير ؛ لا يوجد سوى ملفين مصدرين يبلغ مجموعهما أقل من 2000 سطر.
لقد كان من الرائع أن تسمع عن جميع الأماكن التي يتم استخدام MQTT-C! من فضلك لا تتردد في الاتصال بي أو تقديم مشكلات على جيثب!
لاستخدام MQTT-C ، تقوم أولاً بتثبيت struct mqtt_client وتهيئته عن طريق الاتصال بـ ref mqtt_init.
struct mqtt_client client ; /* instantiate the client */
mqtt_init ( & client , ...); /* initialize the client */بمجرد تهيئة عميلك ، تحتاج إلى الاتصال بوساطة MQTT.
mqtt_connect ( & client , ...); /* send a connection request to the broker. */في هذه المرحلة ، يكون العميل جاهزًا للاستخدام! على سبيل المثال ، يمكننا الاشتراك في موضوع مثل ذلك:
/* subscribe to "toaster/temperature" with a max QoS level of 0 */
mqtt_subscribe ( & client , "toaster/temperature" , 0 );ويمكننا نشر موضوع مثل ذلك:
/* publish coffee temperature with a QoS level of 1 */
int temperature = 67 ;
mqtt_publish ( & client , "coffee/temperature" , & temperature , sizeof ( int ), MQTT_PUBLISH_QOS_1 );هذه هي الأساسيات! من هنا الأمثلة ووثائق API هي أماكن جيدة للبدء.
لا يوجد سوى ملفين مصدرين يجب بناؤهما ، mqtt.c و mqtt_pal.c . هذه الملفات متوافقة مع ANSI C (C89) ، ويجب أن تتجمع مع أي مترجم C.
ثم ، ببساطة #include <mqtt.h> .
بدلاً من ذلك ، يمكنك إنشاء MQTT-C مع CMake أو Makefile المقدمة. يتم توفير هذه للراحة.
يمكن العثور على الوثائق المُصممة مسبقًا هنا: https://liambindle.ca/mqtt-c. تأكد من مراجعة الأمثلة أيضًا.
تحتوي وثائق API REF على جميع مبرمجي تطبيقات الوثائق التي يجب أن يحتاجها. تحتوي وثائق REF PAL على كل ما يجب أن تحتاجه لتوصيل MQTT-C إلى منصة جديدة ، وتحتوي الوحدات الأخرى على وثائق لمطوري MQTT-C.
تستخدم اختبارات وحدة MQTT-C إطار اختبار وحدة Cmocka. لذلك ، يجب تثبيت cmocka على جهازك لإنشاء وتشغيل اختبارات الوحدة. للراحة ، يتم تضمين "makefile" البسيط لبناء اختبارات الوحدة والأمثلة على آلات تشبه UNIX. يمكن بناء اختبارات الوحدة والأمثلة على النحو التالي:
$ make all سيتم بناء اختبارات الوحدة والأمثلة في الدليل "bin/" . يمكن تشغيل اختبارات الوحدة مثل:
$ ./bin/tests [address [port]]لاحظ أن عنوان C و C للمنفذ كلاهما اختياري لتحديد موقع وسيط MQTT الذي سيتم استخدامه للاختبارات. إذا لم يتم إعطاء عنوان C ، فسيتم استخدام خادم اختبار Mosquitto MQTT. إذا لم يتم إعطاء منفذ c ، فسيتم استخدام المنفذ 1883.
يوفر MQTT-C طبقة تجريد منصة شفافة (PAL) في mqtt_pal.h و mqtt_pal.c . تعلن هذه الملفات وتنفيذ الأنواع والمكالمات التي تتطلبها MQTT-C. الرجوع إلى @ref pal للحصول على الوثائق الكاملة لل PAL.
لا تتردد في تقديم المشكلات ورسومات السحب هنا. عند تقديم طلب سحب ، يرجى التأكد من توثيق التغييرات الخاصة بك بالكامل وإضافة اختبارات الوحدة المناسبة.
هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. راجع ملف "LICENSE" لمزيد من التفاصيل.
تم تطوير MQTT-C في البداية كمشروع نهائي CMPT 434 (الشتاء ، 2018) في جامعة ساسكاتشوان بواسطة: