
MQTT-C เป็นไคลเอนต์ MQTT v3.1.1 ที่เขียนใน C. MQTT เป็นโปรโตคอลการส่งข้อความที่ใช้ผู้เผยแพร่-Subscriber ที่มีน้ำหนักเบาซึ่งใช้กันทั่วไปในการใช้งาน IoT และแอปพลิเคชันเครือข่ายที่คาดว่าจะมีการเชื่อมโยงอัตราดอกเบี้ยสูง วัตถุประสงค์ของ MQTT-C คือการจัดหาไคลเอนต์ MQTT แบบพกพา ที่เขียนด้วย C สำหรับระบบฝังตัวและพีซีเหมือนกัน MQTT-C ทำสิ่งนี้โดยการจัดหาแพลตฟอร์ม Abstraction Layer (PAL) ที่โปร่งใส (PAL) ซึ่งทำให้การพอร์ตไปยังแพลตฟอร์มใหม่เป็นเรื่องง่าย MQTT-C นั้นปลอดภัยอย่างสมบูรณ์ แต่ยังสามารถทำงานได้อย่างสมบูรณ์แบบในระบบแบบเธรดเดี่ยวทำให้ MQTT-C เหมาะกับระบบฝังตัวและไมโครคอนโทรลเลอร์ ในที่สุด MQTT-C มีขนาดเล็ก มีไฟล์ต้นฉบับเพียงสองไฟล์ที่มีจำนวนน้อยกว่า 2,000 บรรทัด
เป็นเรื่องดีมากที่ได้ทราบเกี่ยวกับสถานที่ทั้งหมดที่ MQTT-C กำลังใช้อยู่! โปรดอย่าลังเลที่จะติดต่อกับฉันหรือส่งปัญหาเกี่ยวกับ GitHub!
หากต้องการใช้ 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 อย่าลืมตรวจสอบตัวอย่างด้วย
เอกสาร @Ref API มีโปรแกรมเมอร์แอปพลิเคชันเอกสารทั้งหมดควรต้องการ เอกสาร @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 จัดเตรียมเลเยอร์ Abstraction Platform (PAL) ใน mqtt_pal.h และ mqtt_pal.c ไฟล์เหล่านี้ประกาศและใช้ประเภทและการโทรที่ MQTT-C ต้องการ อ้างถึง @Ref PAL สำหรับเอกสารที่สมบูรณ์ของ PAL
โปรดส่งปัญหาและขอคำตอบที่นี่ เมื่อส่งคำตอบแบบดึงโปรดตรวจสอบให้แน่ใจว่าคุณได้ จัดทำเอกสารการเปลี่ยนแปลงของคุณอย่างสมบูรณ์ และเพิ่มการทดสอบหน่วยที่เหมาะสม
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT ดูไฟล์ "LICENSE" สำหรับรายละเอียดเพิ่มเติม
MQTT-C ได้รับการพัฒนาในขั้นต้นว่าเป็นโครงการสุดท้าย CMPT 434 (ฤดูหนาว, 2018) ที่มหาวิทยาลัยซัสแคตเชวันโดย: