MQTT之NanoSDK-Windows篇

1、前言

  最近在学习MQTT过程中使用NanoMQ。我个人下载的是nanomq-0.25.5-windows-x86_64.zip,下载 NanoMQ,里面包含服务端和客户端两个程序。本篇需要使用NanoMQ提供的服务端。同时我也下载了MQTTX作为客户端,带图形界面,个人使用版本MQTTX-Setup-1.13.0-x64.exe,MQTTX 下载。服务端启动:在bin目录下打开命令窗口,使用命令nanomq start --url '127.0.0.1:1883' --conf  D:\software\MQTT\config\nanomq.conf,如下图。nanomq.conf在解压安装nanomq时,放在config目录下。客户端可以使用MQTTX,也可以使用nanomq的客户端,也可以同时使用。个人尝试开启两个客户端命令窗口,一个发布一个订阅。MQTTX也建立两个客户端连接,同样也是一个发布另一个订阅,功能甚是强大。发现这个软件还是开源项目,格局打开。GitHub项目地址nanomq/nanomq:一款超轻量且极速的边缘和软件自带(SDV)消息总线/MQTT 代理。浏览过程中发现有个NanoSDK的开源项目链接nanomq/NanoSDK: NanoSDK - MQTT 5.0-compliant SDK with QUIC support in NNG flavor,这正是本篇正题。  网上查找了很多资料也没有关于Windows上使用源码构建的博文,于是书写本文进行记录。

2、克隆项目并安装依赖

git clone https://github.com/emqx/NanoSDK
cd NanoSDK
git submodule update --init --recursive

3、使用CMake GUI进行程序构建

image

4、打开工程编译项目,并安装nng库

image

5、使用CMake GUI构建Demo下的mqtt示例工程。我当时找了很久,怎么没有Demo目录下的示例。后面搜索资料才知道需要依赖nng库才行。

image

6、点击Generate-》Open project。打开mqtt示例工程并编译,再输出路径下打开命令窗口,输入命令mqtt_client.exe sub "mqtt-tcp://127.0.0.1:1883" 2 "client"开启订阅。但是发现MQTTX发布消息到client中,程序始终无法收到消息。询问Deekseek,因为该示例订阅是异步的,程序在收到订阅确认(SUBACK)之前就已经进入了接收循环,导致可能错过了消息.于是对代码进行了修改。

image

7、发布和订阅

mqtt_client.exe pub "mqtt-tcp://127.0.0.1:1883" 2 world "Hi" 1000  //发布
mqtt_client.exe sub "mqtt-tcp://127.0.0.1:1883" 2 "client"

8、效果

2

 

 

 

     

 

posted @ 2026-08-07 10:19  !>Mon<!  阅读(19)  评论(0)    收藏  举报