客户端:mqttx for windows,并提供基于互联网的mqtt服务,不用再搭建
MQTT的C语言编程:
下载paho的包,在github上,有基于Linux的release版本,下载后,将其解压到任意目录,比如:/opt/mqtt
目录结构如下:
安装完毕后,进行配置(如果不配置,动态链接库无法找到)
设置动态链接库的搜索路径
export LD_LIBRARY_PATH=/opt/mqtt/lib
然后,进入bin目录执行MQTTClient_publish,如果能正常执行不报错就代表成功。这个可执行程序的源码在share/doc/???/sample目录下,可自己查看源码文件,里面设置的MQTT服务器是可用的(2023.7)。
如要自行编译,gcc要给出include文件的位置,及库文件的位置,例,如要重新编译MQTTClient_publish.c文件,用如下命令
gcc MQTTClient.c \
-o MQTTclient \
-I /opt/mqtt/include \ ##指定头文件的所在位置
-L /opt/mqtt/lib \ ##指定动态库的所在位置
-l -lpaho-mqtt3c ##指定要链接的动态库
测试,以公网broker.emqx.io的MQTT服务做测试,修改源码文件并重新编译后,就可以发送了(注意:topic要写成testtopic/#,即与mqttx的客户端看到的一样)
利用mqttx的客户端查看,正常应该能看到订阅的内容。(如果仅写testtopic是看不到的)。另外一个办法就是抓包,只要都正确就算成功。
测试订阅:
编辑MQTTClient_subscribe.c文件,将服务器也指定为broker.emqx.io,执行,会发现收不到消息,这是因为默认没有订阅。
先用客户端进行订阅,并将客户端ID写到源码里重新编译后,即可执行成功。
标签:opt,MQTTClient,mqtt,笔记,学习,MQTT,源码,客户端 From: https://www.cnblogs.com/peterhu318/p/17573576.html