openwrt下用mosquitto的api实现mqttclient(pub和sub一体)

1.环境介绍

MT7620(此处并不是很重要,ubuntu其实也可以)

2.具体操作

1)安装mosquitto库

在menuconfig下找到该库,然后打上<*>编译,让你的sdk下拥有这个库

2)直接上代码

struct mosquitto *mosq;


void my_connect_callback(struct mosquitto *mosq, void *obj, int rc)
{
        //printf("rc11: %d\n", rc);
}

void my_disconnect_callback(struct mosquitto *mosq, void *obj, int result)
{
        mosquitto_destroy(mosq);
        mosquitto_lib_cleanup();
}

void my_publish_callback(struct mosquitto *mosq, void *obj, int mid)
{
        //printf("%d ", message_count);
}

void my_message_callback(struct mosquitto *mosq, void *obj, const struct mosquitto_message *msg)
{
        char *message = NULL;

        message = (char *)msg->payload;
        printf("recv len is: %d, message is %s\n", msg->payloadlen, msg->payload);

}

int mqttInit(void)
{
        int mid = 0;

        mosquitto_lib_init();

        mosq = mosquitto_new("mqtt", true, NULL);
        mosquitto_connect_callback_set(mosq, my_connect_callback);
        mosquitto_disconnect_callback_set(mosq, my_disconnect_callback);
        mosquitto_publish_callback_set(mosq, my_publish_callback);
        mosquitto_message_callback_set(mosq, my_message_callback);
        mosquitto_connect(mosq, "自己的 mqtt server", 1883, 600);
        mosquitto_subscribe(mosq, &mid, “sub的topic”, 1);
        mosquitto_publish(mosq, NULL, “pub的topic“”, “发送的内容长度”, “所要发送的内容”, 1, false);

        return SUCCESSES;
}

3. 重点

最后就是起一个线程不停地去跑mosquitto_loop_start(mosq);

4. 交叉编译然后在板子上运行

检测的话可以通过mosquitto_sub或者mosquitto_pub来进行联调

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值