MQtt通信

#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;
    }

}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值