
MQTT-C是MQTT v3.1.1用C. MQTT編寫的客戶端是一種基於輕量級的發布者 - bubscriber-sbubscriber,它通常用於物聯網和網絡應用程序中,在該應用程序中,可預期高延遲和低數據速率鏈接。 MQTT-C的目的是為嵌入式系統和PC的PC提供一個便攜式MQTT客戶端。 MQTT-C通過提供透明的平台抽象層(PAL)來實現這一目標,該層使移植到新平台上。 MQTT-C是完全螺紋安全的,但在單線程系統上也可以很好地運行,這使MQTT-C非常適合嵌入式系統和微控制器。最後,MQTT-C很小。總共只有兩個源文件少於2000行。
很高興聽到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> 。
另外,您可以使用Cmake或提供的Makefile構建MQTT-C。為方便起見提供這些。
可以在此處找到預製文檔:https://liambindle.ca/mqtt-c。請務必查看示例。
@Ref API文檔包含所有文檔應用程序編程人員應需要的所有文檔。 @Ref PAL文檔包含將MQTT-C移向新平台所需的一切,而其他模塊包含MQTTT-C開發人員的文檔。
MQTT-C單元測試使用CMOCKA單元測試框架。因此,必須在計算機上安裝CMOCKA才能構建和運行單元測試。為了方便起見,包括一個簡單的"makefile"以在Unix狀的機器上構建單元測試和示例。單位測試和示例可以如下構建:
$ make all單位測試和示例將在"bin/"目錄中構建。單位測試可以像這樣進行:
$ ./bin/tests [address [port]]請注意, c地址和 c端口參數都是可選的,用於指定用於測試的MQTT代理的位置。如果沒有給出 C地址,則將使用Mosquitto MQTT測試服務器。如果沒有給出 c端口,將使用端口1883。
MQTT-C在mqtt_pal.h和mqtt_pal.c中提供了透明的平台抽象層(PAL)。這些文件聲明並實施了MQTT-C所需的類型和調用。有關PAL的完整文檔,請參閱@Ref PAL。
請隨時在此處提交問題和撤退。提交拉裝時,請確保您已經完全記錄了更改並添加了適當的單元測試。
該項目已根據MIT許可獲得許可。有關更多詳細信息,請參見"LICENSE"文件。
MQTT-C最初是作為CMPT 434(冬季學期,2018年)在薩斯喀徹溫大學的最終項目開發的: