的MQTT发送端C++代码例,使用QoS 1级别:
时间: 2024-04-10 13:33:18 浏览: 114
当然,这是一个使用QoS 1级别的MQ发送端C++代码示:
```cpp
#includeiostream>
#include <mqtt/async_client.h>
std::string SERVER_ADDRESStcp://mqtt.eclipse.org:1883");
std::string CLIENT_ID("mqtt_cpp");
class mqtt_callback : public virtual mqtt::
{
void connection_lost(const std::stringcause) override
{
std::cout << "\nConnection lost: " << cause << std::endl;
}
void delivery_complete(mqtt::delivery_token_ptr token) override
{
std::cout << "Delivery complete for token: "
<< token->get_message_id() << std::endl;
}
void message_arrived(const mqtt::const_message_ptr &msg) override {}
};
int main(int argc, char *argv[])
{
mqtt::async_client client(SERVER_ADDRESS, CLIENT_ID);
mqtt_callback cb;
client.set_callback(cb);
mqtt::connect_options connOpts;
connOpts.set_keep_alive_interval(20);
connOpts.set_clean_session(true);
try
{
client.connect(connOpts);
std::string topic = "your/topic";
std::string payload = "Hello, MQTT!";
int qos = 1;
bool retained = false;
mqtt::message_ptr pubmsg = mqtt::make_message(topic, payload, qos, retained);
client.publish(pubmsg)->wait_for(std::chrono::seconds(5));
client.disconnect();
}
catch (const mqtt::exception &exc)
{
std::cerr << "Error: " << exc.what() << std::endl;
return 1;
}
return 0;
}
```
在这个例子中,我们使用了相同的MQTT C++库来创建一个MQTT发送端。我们连接到了公共的MQTT代理服务器(mqtt.eclipse.org)并发布了一个消息到指定的主题。消息的QoS级别设置为1,表示需要确认传递。
请注意,这只是一个基本的示例,你可以根据需要修改和扩展它来满足你的实际需求。
阅读全文