部署MQTT Broker - Mosquitto - -YADA

news/2025/11/12 20:37:36/文章来源:https://www.cnblogs.com/yada/p/18875952

MQTT协议

MQTT 协议全称是 Message Queuing Telemetry Transport,翻译过来就是消息队列遥测传输协议,它是物联网常用的应用层协议,运行在 TCP/IP 中的应用层中,依赖 TCP 协议,它具有非常高的可靠性,同时它是 基于TCP 协议的<客户端-服务器>模型发布/订阅主题消息的轻量级协议。

image

在协议中主要有三种身份:发布者(Publisher)、服务器(Broker) 以及订阅者(Subscriber)。 并且消息发布者可以同时是订阅者 。MQTT 消息的发布者和订阅者都是客户端,服务器只是作为一个中转的存在,将发布者发布的消息进行转发给所有订阅该主题的订阅者。

安装

Mosquitto是最流行的开源MQTT broker,它支持多种操作系统,包括Linux、Windows和MacOS。

下载地址:https://mosquitto.org/download/

windows版本下载安装包安装:

image

配置

打开配置文件:C:\Program Files\mosquitto\mosquitto.conf

主要修改以下配置内容:

配置类容 说明
listener 1883 默认值是1883。设置端口号。一般保持默认。
allow_anonymous false 默认值为false。如果配置文件中没有配置Listenner,则默认值为true,但只允许本地连接。
persistence true 默认值为false。消息持久存储。
password_file C:\Program Files\mosquitto\passwd 认证配置,即登录账号信息的文件。需设置绝对路径,如果是相对路径,作为服务启动时工作目录是C:\Windows\System32,将找不到文件。

认证配置

进入 Mosquitto 的安装目录:

cd C:\Program Files\mosquitto

使用以下命名生成密码文件:

.\mosquitto_passwd -c .\passwd username
  • -c会生成密码文件,不加-c代表已有文件,只增加用户,第二次配置不需要输入-c
  • .\passwd:密码文件名称
  • username:用户名

之后输入密码和确认一次密码,新用户就添加完成了。

在Windows中,要为文件设置权限:

image

启动

进入 Mosquitto 的安装目录:

cd C:\Program Files\mosquitto

启动命令:

mosquitto[-c 配置文件][ -d | --daemon ][-p 端口号][-v]
  • -c , --config-file: 从文件中加载配置,如果没有指定,则采用默认配置。
  • -d , --daemon: 在后台作为一个守护进程运行mosquitto。
  • -p , --port: 指定监听的端口,用 -p 定义的监听器只绑定到环回接口。
  • -v , --verbose: 使用详细日志记录。这等价于在配置文件中设置log_typeall,这将覆盖配置文件中的日志记录选项。

示例:

.\mosquitto -c mosquitto.conf

作为服务启动

安装 Mosquitto 服务:

mosquitto install

使用安装包安装时已经安装为服务

启动服务:

net start mosquitto

检查服务状态:

sc query mosquitto

QoS级别

支持MQTT的三种服务质量(QoS)级别,允许用户根据需求选择消息传递的可靠性。

  • QoS 0:最多一次交付
  • QoS 1:至少一次交付
  • QoS 2:只有一次交付

调试工具

https://mqttx.app/downloads

http://mqtt-explorer.com/

测试

以下使用mosquitto自带的命令行测试。一般推荐使用上面的调试工具,更易于使用。

订阅消息

输入以下命名:

.\mosquitto_sub.exe -u user1 -P 1234 -t 'user/topic' -v
  • user11234是用户名和密码
  • user/topic是主题名称

发布消息

输入以下命名:

.\mosquitto_pub.exe -u user1 -P 1234 -t 'user/topic' -m 'mqtt测试'
  • -m 'mqtt测试':发送的消息

常用参数

参数 描述
-h 服务器主机,默认localhost
-t 指定主题
-u 用户名
-P 密码
-i 客户端id,唯一
-m 发布的消息内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/963746.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

useActionState 阻止表单重置

前言 useActionState是react19新出的api,提供的非受控表单钩子。 但是他有一个缺点,就是每次提交表单后会重置表单状态! 官方美其名曰“遵守原生表现”,但是网上讨伐声音,就足以证明垃圾! https://github.com/fa…

路由基础

1. 路由获取方式1. 直连路由。由设备自动生成指向本地直连网络 2. 静态路由。由网络管理员手工配置的路由条目 3. 动态路由。路由器运行动态路由协议学习到的路由动态路由使用最多的协议 ospf isis2. 路由选择1. 最长掩…

UltraSearch(文件搜索神器) Pro v4.8.5.1185 多语便携版

简介 UltraSearch一款超快的文件搜索软件,数秒就可以在硬盘中帮您搜索出文件,比系统自带的快N倍。UltraSearch并不是通过建立索引或后台处理,它是通过查看NTFS分区的主文件表(MFT)来快速找到文件。类似的快速搜索…

idea链接database时报错:serverTimezone

1.报错:Server returns invalid timezone. Go to Advanced tab and set serverTimezone property manually. 2.设置时区 jdbc:mysql://localhost:3306/zcck?serverTimezone=UTC

题解:CF2117F Wildflower

树上计数,洛谷标签里有 Ad-hoc,其实我觉的没那么难,可能因为我太菜了只能做绿题的原因。CF2117F Wildflower 更洛谷的阅读体验 好题,爽! 思维题,爽! Ad-hoc,爽! 我做出来了,爽飞了! 思路 首先我们发现由于每…

UVM环境自动生成器具(2)uvmdvgen

UVM环境自动生成器具(2)uvmdvgenpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&…

题解:CF961C Chessboard

洛谷。 题目传送门。 某次校内模拟赛的 T1。 分析 注意到 \(n\le100\),显然这是一道搜索题。考虑怎么来搜。 我们发现,四块小棋盘可以在左上、右上、左下、右下任意排列,那么构成大棋盘的总方案数就是 \(4!=24\) 种…

7年java开发的一些感悟

下面是对你原文的润色和扩写版本,保持你真实的口吻,但更有层次、情绪和故事感,也让读者更容易共鸣:很难想象,我已经在 Java 这行干了 7 年了。 今年快 35 岁,前段时间刚换了一家公司,总算不用再为生活焦虑得睡不…

11.12 NOIP模拟6/多校1 改题记录

......HZOJ 写在前面 NOIP AK me. 全是唐题。如此模拟赛,何以NOIP?大概就是所有时间拿去攻T1了吧。然后暴力也懒得打了。《Blueming》 ‘뭐해?‘라는 두 글자에 在干嘛?这几个字中 ‘네가 보고 싶어’ 나의 속마음…

文字识别系统代码

点击查看代码 import torch from torch import optim import torch.nn as nn import torch.nn.functional as F from torch.autograd import Variable from torchvision import datasets, transforms from torch.utils…

B4093 [CSP-X2021 山东] 发送快递

B4093 [CSP-X2021 山东] 发送快递 题解题目传送门 我的博客 - 欢迎光临! 本题弱化版(?):P3052,P10483 二者互为双倍经验。首先对于一个强制捆绑组里的物品,我们直接使用并查集,将一个并查集里的物品合成为一个…

从零上手 Rokid JSAR:打造专属 AR 桌面交互式 3D魔方,开启空间创建之旅

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

微软2025年11月补丁星期二修复1个零日漏洞和63个安全漏洞

微软2025年11月补丁星期二发布了安全更新,修复了63个安全漏洞,其中包括1个被积极利用的零日漏洞。本次更新包含4个严重级别漏洞,涉及权限提升、远程代码执行等多个安全领域。微软2025年11月补丁星期二修复1个零日漏…

CF468C Hack it!

已严肃完成今日构造大学习。 首先扔出来一个 \([1, 10^{18} - 1]\) 区间,你会发现这个区间每往右平移一个单位那么 \(f\) 的和就会加 \(1\),当然得在 \(2 \times 10^{18} - 1\) 之内,这也是我们选择这个界的原因。 …

深入解析:FT62FC3X 8位MCU单片机选型表,详细解析FT62FC31A/32A/33A/35A/3FA

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

FFmpeg for Android 图传Web

FFmpeg for Android & 图传Web 之前在项目研发中有个需求, 需要对接RTSP摄像头, 并且需要将其转封装格式到H5能够播放的格式, 并且需要在纯安卓APP中实现, 并且需要低延迟. 找了一圈都没有合适的且现成的方案, 这个…

语法记录

\(\texttt{titile}\) 计概与数算行末不要空格!!! 字符串与字符数组读入 cin >> str //字符与字符串,不含空格、制表符与换行 scanf("%c", &ch) //读单个字符 ch scanf(" %c", &…

Can Large Language Models Detect Rumors on Social Media?

论文信息论文标题:Can Large Language Models Detect Rumors on Social Media?论文作者:刘强、陶翔、吴俊飞、吴舒、王亮论文来源:发布时间:2024-02-06论文地址:link论文代码:link1 介绍 1.1 研究动机研究动机围…

压迫

从明天开始到考研结束前 拒绝三角洲 方舟想起来了挂一下,没想起来就算了 抖音不再打开 b站用来看课 每天总结反思 多学多想多思考 提高效率 瞄着最高分努力 看看实力 如果考的太高完全可以选择二战,这也是二战得信心…

P13573 [CCPC 2024 重庆站] Pico Park

P13573 [CCPC 2024 重庆站] Pico Park 题意: 游戏中,有 \(n\le 500\) 名玩家,依次站在数轴的 \(1,2,3, \dots, n\) 处,第 \(i\) 名玩家有一个面向的方向 \(d_i\),为向左或向右。 每名玩家手里有一把缩小枪,玩家会…