Linux:MQTT通信协议之七 -- 编写paho.mqtt.c简单的C例程(异步函数)

本文介绍了如何在Linux环境下使用paho.mqtt.c库编写异步订阅和发布程序。通过设置结构体和回调函数,实现了非阻塞的MQTT通信。订阅端创建实例并订阅主题,消息到达时调用msgarrvd回调处理。发布端则在连接服务器后发布消息并断开连接。编译时依赖libpaho-mqtt3a.so动态库,运行前需配置库路径。
摘要由CSDN通过智能技术生成

1、前言

异步函数的好处就是以非阻塞的方式去运行,但它相比于同步函数的结构就要稍微复杂一些。异步方式就是先设置对应的结构体,之后就去启动对应的操作,这些操作后台执行完成之后就会调用相结构体里面的成功或失败函数,我们就可以在这些被调用的函数里面执行我们下一步的操作。


2、订阅端

程序一开始就根据我们定义的宏去创建一个实例和设置回调函数,接着定义一个“连接”的结构体填充用户密码、函数指针,这个结构体中将文件句柄作为context传进去供onConnectSuccess等函数去获取,因为连接成功的函数里面需要文件句柄去订阅主题。订阅主题之后服务器端就会根据主题发送匹配的消息,消息到来之后就会调用上面设置的回调函数msgarrvd,在该函数里面就可以获得消息内容去执行相应的操作。

#include <stdio.h>
#
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

R-QWERT

你的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值