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
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
在安装目录下运行cmd,并执行以下代码,设置密码:(注意点前有空格)
.\mosquitto_passwd -c pwfile.example user
至此,mqtt broker环境安装与配置完毕!
3.3 启动mosquitto
打开D:\Develop_tools\mosquitto目录(安装目录),运行cmd,输入:
.\mosquitto -c .\mosquitto.conf -v
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
3.4.1 运行mqtt-spy
下载完mqtt-spy-1.0.1-beta-b18-jar-with-dependencies.jar
后,window系统安装完jre后,直接双击运行。
3.4.2 创建连接
点击创建连接
在Connectivity标签页,填mqtt服务器的ip和端口号,其他的不需要修改
如果服务器有要求认证的,需要填用户名和密码,跟进自己mqtt服务器而定,点击open connection
- 在弹出的询问窗口点击是
点击标签页的连接窗口,可以看到该连接的发布消息窗口(Publish message
)、订阅和接收消息窗口(Subscriptions and received message
),这两个窗口比较常用,这些窗口都可以通过点击右边的按钮来分离成单独窗口。
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服务器的协议,对读者没用参考意义。
当服务器有该主题相关的消息发布时,窗口就会显示消息
点击New,然后填写Topic(主题)过滤,然后点击Subscribe
:
这个Topic(主题)的值是根据mqtt服务器支持的协议来填写。下图是我使用的mqtt服务器的协议,对读者没用参考意义。
当服务器有该主题相关的消息发布时,窗口就会显示消息
参考:https://blog.csdn.net/wkd_007/article/details/133430868?