MQTT | Windows + mosquitto搭建MQTT Broker(本地服务器)与MQTTX客户端联调

一、前言


当我们调试本地嵌入式MQTT客户端时,在本地电脑上搭建MQTT Broker(本地服务器)可以方便地调试MQTT通讯。
在这里插入图片描述
为了测试MQTT Broker是否正常运行,在本地电脑通过MQTTX软件分别创建MQTT客户端1与MQTT客户端2。接着MQTT客户端1发布主题hello_world,MQTT客户端2订阅主题hello_world。

二、mosquitto


2.1、安装

下载mosquitto软件:https://mosquitto.org/download/
在这里插入图片描述
下载对应的版本,现在的windows电脑应该都是64位的吧?
在这里插入图片描述
请记住软件安装的目录,后面要找到文件夹的路径,修改一些文件。我的电脑是C:\Program Files\mosquitto
在这里插入图片描述
安装结束后,以上就是mosquitto文件夹里面的内容。

2.2、修改mosquitto.conf配置文件

在这里插入图片描述

2.2.1、listener

在这里插入图片描述
监听的Port口改为1883

2.2.2、allow_anonymous

在这里插入图片描述
将其修改为allow_anonymous false,这里是不允许匿名登录,如果允许匿名登录,那么修改为allow_anonymous true!!!

我建议设为true,这样MQTT客户端连接MQTT服务器时不需要验证用户名与密码。本地调试我认为完全没有必要弄用户名与密码

2.2.3、password_file

在这里插入图片描述
将其修改为password_file pwfile.example,这里是设置账户密码文件位置,默认是根目录下的pwfile.example
allow_anonymous设为true的话,其实就不用管这个参数了!!!!

2.2.4、创建用户和密码

在这里插入图片描述
用管理员模式打开powershell,否则无法修改密码.
在这里插入图片描述
进入软件安装的文件夹,然后运行命令:

./mosquitto_passwd -c pwfile.example admin

在这里插入图片描述
会提示输入两次密码。
在这里插入图片描述
实际上,第2.2.2章节的allow_anonymous设为true时,就不用管这个用户与密码了!!不用管2.2.3与2.2.4章节了!!!

2.3、启动MQTT Broker(本地服务器)

在这里插入图片描述
打开mosquitto安装的文件夹,我的文件夹位置是:C:\Program Files\mosquitto
在这里插入图片描述
在文件夹里,鼠标右键点击“在终端中打开”。
在这里插入图片描述
执行命令:

.\mosquitto -c .\mosquitto.conf -v

指令的含义是以mosquitto.conf作为配置文件运行,同时开启详细的日志模式。
在这里插入图片描述
按下回车后,从终端反馈的信息可以看到,mosquitto version 2.0.14正在运行,分别在ipv6与ipv4上的socket端口1883上开启了监听。MQTT broker(本地服务器)开启成功!!!!

三、MQTTX


3.1、创建MQTT客户端1

在这里插入图片描述
在这里插入图片描述
点击右上角的连接。
在这里插入图片描述
切换回Powershell之后,看到有新客户端(mqttx_9651aed2)连接的信息。

3.2、创建MQTT客户端2

在这里插入图片描述
客户端1与客户端2其他参数一样,除了名称和Client ID不能一样。
在这里插入图片描述
创建完客户端2后,MQTTX有两个客户端。切换到power_shell查看一些MQTT Broker的内容。
在这里插入图片描述
从服务器的打印的日志了解到有两个客户端连接上了MQTT服务器。

四、订阅-发送

4.1、MQTT客户端1订阅主题hello_world

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
MQTT客户端订阅主题之后,mosquitto服务器会打印出如上图所示4条日志信息。

4.2、MQTT客户端2发布主题hello_world

在这里插入图片描述
在这里插入图片描述

4.3、订阅-发送消息

在这里插入图片描述
当MQTT客户端2发布主题hello_world,内容“ni,hal!!!”之后,MQTT客户端1马上有消息提醒!!
在这里插入图片描述
从上图可以看到,当回到MQTT客户端1窗口,可以看到收到了主题hello_world的消息。
在这里插入图片描述
实际上,MQTT Broker(服务器)的日志也能显示对应的发送与接收的一些内容。比如主题是hello_world,但主题的内容是看不到的。

五、细节补充


5.1、mosquitto无法正常启动

在这里插入图片描述
从上图的信息可以推断,端口被进程占用了,mosquitto在后台已经开启了。
在这里插入图片描述
在任务管理器里找到mosquitto.exe,接着结束任务即可。

  • 18
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
### 回答1: 要搭建一个mosquitto MQTT服务器,首先需要安装mosquitto服务器软件。安装完成后,可以使用配置文件mosquitto.conf来配置服务器。最后使用命令 "mosquitto -c /path/to/mosquitto.conf" 启动服务器。 ### 回答2: Mosquitto是开源的MQTT服务器,用于在物联网应用程序之间传递消息。通过Mosquitto,设备、传感器和云服务之间可以实现低延迟、高效的通信。搭建mosquitto mqtt服务器,可以支持我们的物联网应用程序以经济高效的方式,将数据、命令、状态等信息及时传递和共享,实现更智慧、更便捷的物联网。 下面是mosquitto搭建mqtt服务器的步骤: 1. 安装mosquitto 首先,需要先安装mosquittomosquitto是Linux下的一个程序包。可以使用 apt-get 来安装:sudo apt-get install mosquitto 2. 配置mosquitto mosquitto的配置文件是mosquitto.conf。使用以下命令打开: sudo nano /etc/mosquitto/mosquitto.conf 更改以下内容: bind_address # 默认端口是1883 pid_file /var/run/mosquitto.pid log_dest file /var/log/mosquitto/mosquitto.log allow_anonymous false password_file /etc/mosquitto/passwd acl_file /etc/mosquitto/acl 3. 创建用户和密码 使用以下命令创建一个名为 testuser 的新用户: sudo mosquitto_passwd /etc/mosquitto/passwd testuser 4. 创建ACL文件 ACL文件是访问控制列表,它决定了谁可以访问服务器以及访问权限。通过以下命令创建ACL文件: sudo nano /etc/mosquitto/acl 将以下内容添加到文件中: user testuser topic readwrite # 让 testuser 用户具有读写所有主题的权限。 5. 重启mosquitto 使用以下命令重启mosquitto以使更改生效: sudo service mosquitto restart 至此,我们已经成功搭建好了mosquitto mqtt服务器,可以开始使用了。通过mqtt客户端就可以连接服务器了,使用以上配置的用户名和密码即可。如果想要更多地了解mqttmosquitto服务器的使用,可以查看相关文档或视频,以便更好地理解和使用mqtt。 ### 回答3: MQTT(Message Queue Telemetry Transport)是一种轻量级的消息协议,通常用于连接物联网设备和传输数据。Mosquitto是一个基于MQTT协议的开源消息代理软件,拥有在Linux、Windows等不同系统中使用的版本。通过Mosquitto,可以搭建自己的MQTT服务器,实现物联网设备的数据传输。 搭建Mosquitto MQTT服务器的步骤如下: 1. 安装Mosquitto:可以通过源代码或者二进制文件安装Mosquitto。在Linux系统上,可以通过命令行输入“sudo apt-get install mosquitto”实现安装。 2. 启动Mosquitto服务:在Linux系统上,可以通过命令行输入“p service mosquitto start”或者“mosquitto -d”启动Mosquitto MQTT服务。其中,“-d”参数表示在后台运行服务。 3. 配置MosquittoMosquitto的默认配置文件在“/etc/mosquitto/mosquitto.conf”中。根据需要,可以修改配置文件以满足自己的需求。 4. 确定MQTT客户端MQTT客户端负责向服务器发送和接收消息。可以使用Python、Java等各种编程语言开发MQTT客户端并与Mosquitto进行通信。 5. 连接Mosquitto MQTT服务器:在编写完MQTT客户端代码后,可以通过指定Mosquitto的IP地址和端口号来连接Mosquitto。 6. 测试通信:连接成功后,可以使用MQTT客户端发送和接收消息,测试通信。可以通过使用MQTT.fx等客户端工具,对Mosquitto服务器进行测试。 搭建Mosquitto MQTT服务器需要一定的技术基础,对于没有经验的用户来说比较复杂。但随着物联网技术的发展,越来越多的人开始学习和使用MQTT协议,相信Mosquitto和其他MQTT工具的使用会越来越简单。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wallace Zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值