C++ MQTTクライアント実装ガイド【サンプルコード付き】
C++でMQTTを使用するには、MQTTクライアントライブラリを使用します。これらのライブラリは、MQTTブローカーに接続し通信するためのAPIセットを提供しています。人気のあるMQTTクライアントライブラリには、Paho MQTT C++ライブラリやMosquitto MQTT C++ライブラリがあります。これらのライブラリは、MQTTのパブリッシュやサブスクライブの機能を実装し、MQTTブローカーと通信するのに役立ちます。
以下はPaho MQTT C++ライブラリを使用した簡単なサンプルコードです:
#include <iostream>
#include "mqtt/async_client.h"
int main() {
const std::string address = "tcp://iot.eclipse.org:1883";
const std::string client_id = "cpp_mqtt_client";
mqtt::async_client client(address, client_id);
mqtt::connect_options connOpts;
connOpts.set_keep_alive_interval(20);
connOpts.set_clean_session(true);
client.set_callback([](const mqtt::message_ptr msg) {
std::cout << "Received message: " << msg->get_payload_str() << std::endl;
});
try {
client.connect(connOpts)->wait();
client.subscribe("topic/test", 1)->wait();
client.publish("topic/test", "Hello, MQTT from C++")->wait();
} catch (const mqtt::exception& exc) {
std::cerr << "Error: " << exc.what() << std::endl;
}
client.disconnect()->wait();
return 0;
}
この例では、Paho MQTT C++ライブラリを使用してMQTTクライアントを作成し、公共のMQTTブローカー(iot.eclipse.org)に接続しました。その後、「topic/test」というトピックを購読し、このトピックにメッセージを公開しました。ブローカーからメッセージを受信すると、コールバック関数でそれを表示します。
このサンプルコードをカスタマイズし、より複雑なMQTT機能を実装するために必要に応じて拡張することができます。