参考:
MQTT通信协议(mosquitto)发布订阅例子C语言实现 https://kunaly.blog.csdn.net/article/details/107466430?spm=1001.2014.3001.5506
MQTT通信协议(mosquitto)在Linux上的环境构建与测试
https://blog.csdn.net/qq_33406883/article/details/107429946
sudo apt-get install mosquitto
sudo snap install mosquitto
sudo systemctl status mosquitto
查看运行进程号:
ps -aux | grep mosquitto
执行命令杀死进程:
kill -9 进程号
启动:
mosquitto -v
-v 详细模式——启用所有日志记录类型。
关于启动参数:可以通过 --help 查看
打开第一个终端作为服务的发布方
mosquitto -v
mosquitto_pub -t hello -m world
发布内容:mosquitto_pub -t hello -m world
-t 指定订阅的主题,主题为:hello
-m 指定发布的消息的内容
打开第第二个终端作为服务的订阅方
mosquitto_sub -v -t hello
订阅主题:mosquitto_sub -v -t hello
-t 指定订阅的主题,主题为:hello
-v 详细模式 打印调试信息
通过mosquitto的官方源码,编程实现MQTT协议的发布订阅。
需要用到的文件。对应路径如下:
mosquitto-1.6.10/lib/libmosquitto.so.1
mosquitto-1.6.10/lib/cpp/libmosquittopp.so.1
mosquitto-1.6.10/lib/mosquitto.h
mosquitto-1.6.10/lib/mosquittopp.h
参考:浅浅的 使用网络调试助手和Mosquitto 分析MQTT协议数据包内容_田小呱的博客-CSDN博客
TCP助手下载地址:http://free.cmsoft.cn/download/cmsoft/assistant/netassist5.0.3.zip
1、连接mosquitto:
10 26 00 04 4D 51 54 54 04 C2 00 3C 00 09 31 32 33 34 35 36 37 38 39 00 05 61 64 6D 69 6E 00 08 70 61 73 73 77 6F 72 64
不要换行
2、心跳包
20 02 00 00
3、订阅
订阅的名称为test
82 09 00 01 00 04 74 65 73 74 00
4、发布
发布的名称为test 内容为hello_esp8266
31 13 00 04 74 65 73 74 68 65 6C 6C 6F 5F 65 73 70 38 32 36 36
参考:
使用AT指令配置ESP8266开启透传模式_志远电子工作室的博客-CSDN博客
1、使用AT指令进行测试
AT
2、将8266设置AP模式
AT+CWMODE=3
3、连接WIFI
AT+CWJAP="712","000666888"
4、进入透传模式
AT+CIPMODE=1
5、连接tcp
AT+CIPSTART="TCP","192.168.0.119",1883
6、开启透传
AT+CIPSEND
6、connect指令连接mosquito
这里第一次连接一定要使用16禁止,并且不能使用回车,否则需要重新连接tcp
10 26 00 04 4D 51 54 54 04 C2 00 3C 00 09 31 32 33 34 35 36 37 38 39 00 05 61 64 6D 69 6E 00 08 70 61 73 73 77 6F 72 64
7、保持在线心跳包
20 02 00 00
8、订阅test消息
82 09 00 01 00 04 74 65 73 74 00
9、发布test报文
31 13 00 04 74 65 73 74 68 65 6C 6C 6F 5F 65 73 70 38 32 36 36