#include<iostream>
#include<string>
#include "mqtt/async_client.h"
#pragma comment(lib,"paho-mqtt3a.lib")
#pragma comment(lib,"paho-cpp-objs.lib")
const std::string SERVER_ADDRESS{ "tcp://192.168.1.101" };//订阅地址
const std::string CLIENT_ID{ "client_id" };//id
const std::string TOPIC_EQUPMENT{ "" };//订阅主题
const std::string USERNAME{ "admin" };//账号名
const std::string PASSWORD{ "public" };//密码
class callback : public virtual mqtt::callback
{
void connection_lost(const std::string& cause) override {}
void delivery_complete(mqtt::delivery_token_ptr tok) override {}
void message_arrived(mqtt::const_message_ptr msg) override;
};
void callback::message_arrived(mqtt::const_message_ptr msg)
{
{
std::string topic = msg->get_topic();
std::string payload = msg->to_string();
if (topic == TOPIC_EQUPMENT) {
std::string jstr = msg->to_string();
std::cout << "收到" << jstr << std::endl;
}
}
}
int main() {
mqtt::async_client client(SERVER_ADDRESS, CLIENT_ID);
callback cb;
client.set_callback(cb);
mqtt::connect_options connOpts;
connOpts.set_keep_alive_interval(20);
connOpts.set_clean_session(true);
connOpts.set_user_name(USERNAME);
connOpts.set_password(PASSWORD);
try {
mqtt::token_ptr conntok = client.connect(connOpts);
conntok->wait();
mqtt::token_ptr subtok1 = client.subscribe(TOPIC_EQUPMENT, 0);
subtok1->wait();
while (true) {
}
}
catch (const mqtt::exception& exc) {
std::cerr << "Error: " << exc.what() << std::endl;
return 1;
}
}
MQtt通信
最新推荐文章于 2024-07-15 13:32:43 发布