mosquitto安装与使用

article/2025/10/23 0:22:18
  • Eclipse Mosquitto 是实现MQTT协议版本5.0、3.1.1和3.1的开源消息代理(经EPL / EDL许可)。
  • mosquitto 是一个开源的轻量级的C实现,适合在从低功耗单板计算机到完整服务器的所有设备上使用。
  • mosquitto包括服务端和客户端。
  • 官网:http://mosquitto.org/

一、安装 mosquitto

# 安装 mosquitto broker
sudo apt-get install mosquitto
# 安装 mosquitto client
sudo apt-get install mosquitto-clients

二、启动 mosquitto 服务

# 开启 mosquitto 服务
service mosquitto start# 查看 mosquitto 是否启动成功
ps -ef | grep mosquitto

在这里插入图片描述


三、订阅主题

打开一个终端,执行以下命令:

mosquitto_sub -h localhost -t "mqtt" -v
或者
mosquitto_sub -h "192.168.0.103" -t "mqtt" -v

-h 是指定要连接的 MQTT 服务器,localhost 指本机,也可以直接使用本机的 IP。
-t 订阅主题。主题为 mqtt
-v 打印更多的调试信息。


四、发布主题:

打开另一个终端,执行以下命令:

mosquitto_pub -h localhost -t "mqtt" -m "Hello World"

-h 是指定要连接的 MQTT 服务器,localhost 指本机,也可以直接使用本机的 IP。
-t 订阅主题。主题为 mqtt
-m 指定消息内容,这里发送的是 Hello


五、现象展示:

在打开的第一个终端就会收到消息mqtt Hello World
broker
在这里插入图片描述
client
在这里插入图片描述


六、附:命令使用方法

订阅主题:

mosquitto_sub用法:

mosquitto_sub [-c] [-d] [-h hostname] [-i client_id] [-I client id prefix] [-k keepalive time] [-p port number] [-q message QoS] [--quiet] [-v] [ -u username [-Ppassword] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] -t message topic
描述
-c, –disable-clean-session禁止’clean session’选项,即如果客户端断开连接,这个订阅仍然保留来接收随后到的QoS为1和2的消息,当改客户端重新连接之后,它将接收到已排在队列中的消息。建议使用此选项时,客户端id选项设为–id
-d, –debug开启debug选项
-h, –host说明所连接到的域名,默认是localhost
-i, –id客户端的ID号,如果没有指定,默认是mosquitto_pub_加上客户端的进程id,不能和–id_prefix同时使用。
-I, –id-prefix指定客户端ID的前缀,与客户端的进程ID连接组成客户端的ID,不能喝–id同时使用。
-k, –keepalive给代理发送PING命令(目的在于告知代理该客户端连接保持且在正常工作)的间隔时间,默认是60s。
-p, –port说明客户端连接到的端口,默认是1883。
-P, –pw指定密码用于代理认证,使用此选项时必须有有效的用户名。
-q, –qos指定消息的服务质量,可以为0,1,2,默认是0。
–quiet如果指定该选项,则不会有任何错误被打印,当然,这排除了无效的用户输入所引起的错误消息。
-t, –topic指定订阅的消息主题,允许同时订阅到多个主题。
-u, –username指定用户名用于代理认证。
-v, –verbose冗长地打印收到的消息。若指定该选项,打印消息时前面会打印主题名——“主题 消息内容”,否则,只打印消息内容。
–will-payload如果指定该选项,则万一客户端意外和代理服务器断开,则该消息将被保留在服务端并发送出去,该选项必须同时用–will-topic指定主题。
–will-qos指定Will的服务质量,默认是0.必须和选项 –will-topic同时使用。
–will-retain如果指定该选项,则万一客户端意外断开,已被发送的消息将被当做retained消息。必须和选项 –will-topic同时使用。
–will-topic指定客户端意外断开时,Will消息发送到的主题。

发布主题:

mosquitto_pub 用法:

mosquitto_pub [-d] [-h hostname] [-i client_id] [-I client id prefix] [-p port number] [-q message QoS] [--quiet] [-r] { -f file | -l | -m message | -n | -s} [-u username [-P password] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] -t message-topic
描述
-d, –debug开启debug选项
-f, –file把一个文件的内容做为消息的内容发送。经测试,支持txt文件,不支持doc等其他形式文件。
-h, –host说明所连接到的域名,默认是localhost
-i, –id客户端的ID号,如果没有指定,默认是mosquitto_pub_加上客户端的进程id,不能和–id_prefix同时使用。
-I, –id-prefix指定客户端ID的前缀,与客户端的进程ID连接组成客户端的ID,不能和–id同时使用。
-l, –stdin-line从总段读取输入发送消息,一行为一条消息,空白行不会被发送。
-m, –message从命令行发送一条消息,-m后面跟发送的消息内容。
-n, –null-message发送一条空消息。
-p, –port连接的端口号,默认是1883。
-P, –pw指定密码用于代理认证,使用此选项时必须有有效的用户名。
-q, –qos指定消息的服务质量,可以为0,1,2,默认是0。
–quiet如果指定该选项,则不会有任何错误被打印,当然,这排除了无效的用户输入所引起的错误消息。
-r, –retain如果指定该选项,该条消息将被保留做为最后一条收到的消息。下一个订阅消息者将能至少收到该条消息。
-s, –stdin-file从标准输入接收传输的消息内容,所有输入做为一条消息发送。
-t, –topic指定消息所发布到哪个主题。
-u, –username指定用户名用于代理认证。
–will-payload如果指定该选项,则万一客户端意外和代理服务器断开,则该消息将被保留在服务端并发送出去,该选项必须同时用–will-topic指定主题。
–will-qos指定Will的服务质量,默认是0.必须和选项 –will-topic同时使用。
–will-retain如果指定该选项,则万一客户端意外断开,已被发送的消息将被当做retained消息。必须和选项 –will-topic同时使用。
–will-topic指定客户端意外断开时,Will消息发送到的主题。

参考:MQTT–mosquitto使用详解、MQTT–入门


http://chatgpt.dhexx.cn/article/PkREe53E.shtml

相关文章

NMOS和PMOS管

这里我先说一下我自己分辨MOS管的方法 对于NMOS我们看下图中的箭头,都是远离源头。 对于PMOS我们看箭头,都是指向源头 P:POSITIVE积极的寻找自己的起源 N:NEGTIVE消极的远离自己的源头 首先明确一点,S是源极&#xff…

mosquitto接口流程图

接口流程图 1、mosquitto_new2、mosquitto_reinitialise3、mosquitto_connect_async4、mosquitto_loop5、mosquitto_loop_start6、mosquitto_loop_stop7、mosquitto_loop_forever8、mosquitto client自定义开发流程 1、mosquitto_new 2、mosquitto_reinitialise 3、mosquitto_c…

Mosquitto常用命令

1 mosquitto服务器的搭建 服务器这里使用了阿里云的服务器,mosquitto默认需要1883的TCP入端口。需要在安全策略里设置一下。端口当然也可以选其他端口进行配置。 服务安装 # 服务器终端安装mosquitto和mosquitto-clients,后者是一些客户端,…

mosquitto 在 Windows 上的安装

文章目录 第一步:准备安装文件第二步:安装Mosquitto第三步:安装OpenSSL第四步:将要求的DLL放置Mosquitto安装目录下第五步:添加环境变量第六步:验证 第一步:准备安装文件 安装文件点此下载 注…

Mosquitto --topic

订阅树的概念 Mosquitto通过订阅树的方式来管理所有的topic以及客户端的订阅关系,它首先将所有的topic按照/分割并组织成一棵树结构,从根节点到树中的每个节点即组成该节点所对应的一个topic,每个topic都保存一个订阅列表,…

Mosquitto简介及搭建

文章钢要: 1、了解Mosquitto服务器 2、在Liunx中搭建Mosquitto服务器 3、设置Mosquitto集群 一、Mosquitto简介 一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对…

[移动] Mosquitto简要教程(安装/使用/测试)

上篇文章《 Android主流推送方案分析(MQTT/XMPP/GCM)》中,我们给大家介绍了,如何在移动领域使用灵巧的消息传输协议MQTT来完成消息推送,最后也提到了开源项目Mosquitto。实际上,Mosquitto是一个实现了MQTT…

MQTT Broker mosquito配置以及使用tls证书登录附上Python调用代码

MQTT Broker mosquito配置以及使用tls证书登录 文章目录 MQTT Broker mosquito配置以及使用tls证书登录1. 前言2. 安装3. mosquito相关命令3.1 运行停止查看状态3.2 创建可以登录mosquito的用户3.3 配置权限规则文件3.4 配置mosquito3.5 使用mosquito_pub和mosquito_sub测试3.5…

Mosquitto安装及使用

本文简要介绍MQTT服务器mosquitto的安装以及最基本的使用。 第一步, 下载 我的ubuntu是16.4 64bit的虚拟机, mosquitto-1.5.tar.gz 从https://mosquitto.org/download/下载。 第二步 编译和安装 我们先解压,然后执行make, mak…

Mosquitto安装及使用简介

1、源码下载: (1)官方源码下载:http://mosquitto.org/files/source/ (2)性能优化版源码下载:https://github.com/houjixin/mosquitto-1.4.11-opt (3)性能优化版优化方…

SQL--数据查询

特别提示:图片有水印,请不要直接使用 pcshop——Oracle版本 CREATE TABLE customers ( customer_id varchar2(10) NOT NULL, firstname varchar2(32) default NULL, lastname varchar2(32) default NULL, city varchar2(32) default NULL, address var…

SQL查询优化

SQL查询优化 一、获取有性能问题SQL的三种方法 通过用户反馈获取存在性能问题的SQL 通过慢查询日志获取存在性能问题的SQL 实时获取存在性能问题的SQL 二、慢查询日志介绍 1、使用慢查询日志获取有性能问题的SQL (1) 参数配置 slow_query_log 启动停止记录慢查询日志 .…

sql查询排序

查询排序 如果需要针对查询后的结果,按照指定的数据列进行排序操作,就必须使用ORDER BY 默认排序:按照数据的插入顺序。 select * from emp;观察 语法格式 【3控制要显示的数据列】SELECT[DISTINCT]*|列名称[别名],列名称[别名…

SQL 查询数据

数据库表是存储数据库中所有数据的对象。 在表中,数据按行和列格式逻辑组织,类似于电子表格 (Excel) 在表中,每行代表一个唯一记录,每列代表记录中的一个字段。 例如, SC表包含学生成绩数据,如学生标识号&a…

SQL之查询

因为同一SQL语句,不同厂商有不同的实现方式,因此同一SQL语句不一定在所有的数据库编辑器上能够正确运行,这里采用的是华为的openGauss。 基本格式为: SELECT desired attributes FROM one or more tables WHERE condition about…

SQL查询与操作

1.单表查询 SQL 数据查询主要由 SELECT 语句完成,SELECT 语句是SQL 的核心。单表查询就是利用 SELECT语句仅从一个表/视图中查询数据。其语法如下: SELECT [DISTINCT]*{ 字段名 1,字段名 2, 字段名 3,… FROM 表名 [WHERE 条件表达式 1] [GR…

sql的查询

sql的查询 (1)什么是排序 order by(2)如何排序 》》数据库的查询(排序:order by) SELECT * FROM 表名 ORDER BY 排序字段 ASC(升序)|DESC(降序);(3)特点 指定列 指定升序或者降序 order by 排序只对数字和…

SQL 数据查询

前言,数据库中有5个表,student,sc,course,tc,teacher;(sql server里面不区分大小写) student sc tc course teacher 1. 查询软件工程学院(SE)学生的学…

SQL数据查询

目录 1、求各系学生的平均成绩,并把结果存入新建的数据库表中(请自己创建一个表存放结果) 2、统计每门课程的选修学生人数及各门课程的平均成绩 3、找出各系年龄最大的学生,显示其学号、姓名;(利用相关子…

数据库:SQL数据查询(详细、全面)

以下题目中加粗字体为重点哦~ 一、查询指定列、全部列 1.查询全体学生的学号和姓名 SELECT SNO, SN FROM S 2.查询全部列 SELECT * FROM S 二、查询经过计算的值 3. 查询全体学生的姓名、出生年份 SELECT SN, 2020-AGE FROM S 4. 查村全体学生的姓名、出生年份和系名&#xff…