# 2. MQTT服务器的搭建和使用 ### 1. 公共MQTT测试服务器 MQTT是成熟的物联网协议,网上已经公开很多公用的MQTT代理/服务器 供开发人员测试,其中常用的一个就是: 地址:mq.tongxinmao.com 端口:18831 用MQTT客户端连上以上服务器,就可以发布和订阅MQTT消息。 ### 2. mosquitto Mosquitto是用C语言实现MQTT协议的Broker。是一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。 \*\*安装路径:\*\* https://mosquitto.org/download/ mosquitto文件说明 1)mosquitto:代理器主程序 2)mosquitto.conf:配置文件 3)mosquitto_passwd:用户密码管理工具 4)mosquitto_pub:用于发布消息的命令行客户端 5)mosquitto_sub:用于订阅消息的命令行客户端 6)mqtt:MQTT的后台进程 7)libmosquitto:客户端编译的库文件 \> 参考:https://blog.csdn.net/maodewen11/article/details/133528021 ### 3. Windows系统搭建 #### 3.1 下载Windows的mosquitto !\[image-20240329211340416\](https://hgh-typora-image.oss-cn-guangzhou.aliyuncs.com/img/image-20240329211340416.png) #### 3.2 修改配置文件 配置文件在D:\\Develop_tools\\mosquitto目录下(自己的安装路径),找到mosquitto.conf文件打开,任选一个位置写入: \* 配置端口: listener 1883 \* 如果又多个需要绑定IP和端口可以多次使用listener,如 listener 1883 127.0.0.1 \* 允许匿名登录:allow_anonymous true \* 设置账号密码: password_file pwfile.example !\[image-20240330113345627\](https://hgh-typora-image.oss-cn-guangzhou.aliyuncs.com/img/image-20240330113345627.png) 在安装目录下运行cmd,并执行以下代码,设置密码:(注意点前有空格) \`\`\`shell .\\mosquitto_passwd -c pwfile.example user \`\`\` \> 注意:以上设置密码的命令的用户名是user,可自定义 !\[image-20240329213324884\](https://hgh-typora-image.oss-cn-guangzhou.aliyuncs.com/img/image-20240329213324884.png) 至此,mqtt broker环境安装与配置完毕! #### 3.3 启动mosquitto 打开D:\\Develop_tools\\mosquitto目录(安装目录),运行cmd,输入: \`\`\`shell .\\mosquitto -c .\\mosquitto.conf -v \`\`\` !\[image-20240329213611132\](https://hgh-typora-image.oss-cn-guangzhou.aliyuncs.com/img/image-20240329213611132.png) #### 3.4 mqtt测试 常用的测试软件包括MQTTFx、MQTT、MQTTBox等,以下使用的是mqttfx或mqtt-sps (1)mqttfx 教程:https://blog.csdn.net/qq_33406883/article/details/107492604/ 安装包: (2)mqtt-spy mqtt-spy是开源的。 \* 项目开源地址:https://github.com/eclipse/paho.mqtt-spy \* 发布版本下载地址:https://github.com/eclipse/paho.mqtt-spy/releases ==注意:==mqtt-spy 是基于 Java 的应用程序,因此需要安装 Java 运行时环境 (JRE)。 下载 \[mqtt-spy-1.0.1-beta-b18-jar-with-dependencies.jar\](https://github.com/eclipse/paho.mqtt-spy/releases/download/1.0.1-beta18/mqtt-spy-1.0.1-beta-b18-jar-with-dependencies.jar) !\[image-20240329215212228\](https://hgh-typora-image.oss-cn-guangzhou.aliyuncs.com/img/image-20240329215212228.png) ##### 3.4.1 运行mqtt-spy 下载完\`mqtt-spy-1.0.1-beta-b18-jar-with-dependencies.jar\`后,window系统安装完jre后,直接双击运行。 ##### 3.4.2 创建连接 点击创建连接 !\[image-20240329223306258\](https://hgh-typora-image.oss-cn-guangzhou.aliyuncs.com/img/image-20240329223306258.png) 在Connectivity标签页,填mqtt服务器的ip和端口号,其他的不需要修改 如果服务器有要求认证的,需要填用户名和密码,跟进自己mqtt服务器而定,点击\`open connection\` !\[image-20240329221439730\](https://hgh-typora-image.oss-cn-guangzhou.aliyuncs.com/img/image-20240329221439730.png) \* 在弹出的询问窗口点击是 点击标签页的连接窗口,可以看到该连接的发布消息窗口(\`Publish message\`)、订阅和接收消息窗口(\`Subscriptions and received message\`),这两个窗口比较常用,这些窗口都可以通过点击右边的按钮来分离成单独窗口。 !\[image-20240329221719067\](https://hgh-typora-image.oss-cn-guangzhou.aliyuncs.com/img/image-20240329221719067.png) ### 3.4.3 发布消息(Publish message) 发布消息是在\`Publish message\`窗口,先点击窗口右边的设置按钮,然后选择\`Detech to a seperate window\`,分离成独立窗口,便于看信息。 然后填写Topic值和Data值,点击\`Publish\`发布即可: ==注意==:Topic值、Data值,需要按照mqtt服务器的协议来填写。 ### 3.4.4 订阅、接收消息 订阅消息,点击New,然后填写Topic(主题)过滤,然后点击\`Subscribe\`: 这个Topic(主题)的值是根据mqtt服务器支持的协议来填写。下图是我使用的mqtt服务器的协议,对读者没用参考意义。 当服务器有该主题相关的消息发布时,窗口就会显示消息 \> 参考:https://blog.csdn.net/wkd_007/article/details/133430868?