
MQTT-CはC.に書かれたMQTT V3.1.1クライアントです。MQTTは、高レートおよび低データレートリンクが予想されるIoTおよびネットワークアプリケーションで一般的に使用される軽量の出版社サブスクリバーベースのメッセージングプロトコルです。 MQTT-Cの目的は、埋め込まれたシステムとPCの同様に、Cで記述されたポータブルMQTTクライアントを提供することです。 MQTT-Cは、新しいプラットフォームへの移植を簡単にする透明なプラットフォーム抽象化レイヤー(PAL)を提供することにより、これを行います。 MQTT-Cは完全にスレッドセーフですが、シングルスレッドシステムでも完全に正常に実行される可能性があります。最後に、MQTT-Cは小さいです。合計2000行未満のソースファイルは2つしかありません。
MQTT-Cが使用されているすべての場所について聞くのは素晴らしいことです!私と連絡を取りたり、GitHubで問題を提出したりすることをheしないでください!
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ドキュメントは始めるのに適した場所です。
構築する必要があるソースファイルは2つしかありません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を新しいプラットフォームに移植するために必要なすべてのものが含まれており、他のモジュールにはMQTT-C開発者のドキュメントが含まれています。
MQTT-Cユニットテストでは、CMOCKAユニットテストフレームワークを使用します。したがって、ユニットテストを構築および実行するには、CMOCKAをマシンにインストールする必要があります。便利なため、UNIXのようなマシンでユニットテストと例を構築するために、単純な"makefile"が含まれています。ユニットテストと例は、次のように構築できます。
$ 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を参照してください。
ここで問題やプルレクエストをお気軽に送信してください。 Pull-Requestを送信するときは、変更を完全に文書化し、適切な単体テストを追加してください。
このプロジェクトは、MITライセンスの下でライセンスされています。詳細については、 "LICENSE"ファイルを参照してください。
MQTT-Cは当初、サスカチュワン大学でのCMPT 434(冬期、2018年冬期、2018年)最終プロジェクトとして開発されました。