本帖最后由 stm1024 于 2024-11-24 00:02 编辑
MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅模式的消息传输协议,被设计用于低带宽和不稳定的网络环境中。在Linux环境下,有许多开源的MQTT库可以用来帮助开发者实现客户端或者服务器端的应用程序。
在之前的树莓派评测时,也做过该协议的演示和测试,见链接:https://www.eefocus.com/forum/thread-230328-1-1.html
1. 先测试一下安装和消息订阅发布
过程都是一样的,给出截图。
以上测试验证在LR3568上,和其他的Linux环境都是一样能够正常订阅和发布MQTT消息的,这就验证了程序正常安装,以及配置的正确性和功能的完好性。
2. 基于库的MQTT程序开发
如果只是为了演示一下MQTT的消息订阅发布,也太浅尝辄止了,这个协议通常不是人工手动发送的,而是通过程序完成,这种情况下就需要编写程序了。 其实mosquitto中包含了类库,需要做的就是对其进行编译: 中间会碰到问题,搞了两次分别报错如下:
需要安装库: - #安装opensslconf.h
- sudo apt-get install libssl-dev
- #安装libcjson libcjson-dev
- sudo apt-get install libcjson1 libcjson-dev
复制代码分别安装这两个包:
然后就可以make,以及make install了,如下所示是安装成功后的截图:
在mosquitto-2.0.20\examples有一个publish和suscribe的文件夹,里面各包含1个basic-1.c的源码,把文件名称修改为basic1.c,方便编译,编译的makefile是:
- include ../../config.mk
- basic1 : basic1.o
- ${CROSS_COMPILE}${CC} $^ -o $@ ../../lib/libmosquitto.so.${SOVERSION}
复制代码
最后可执行程序运行:
发布者 订阅者 以及使用Windows客户端的订阅者:
我们只需要稍微研究和修改一下源码就可以编写我们自己的程序了。
|