洵云芝士堂-mosquitto测试

简介: 在IOT物联网的世界里,目前有一种主流的协议叫做MQTT协议,这个协议架构主要有发布[publisher]、订阅[subscriber]和代理[broker]三部分组成,此协议在2014年推出3.1版本,2019年推出5.0版本。网上有许多优秀的代理软件基于3.1版本开发,例如mosquitto,为C语言开发,支持WINDOWS,LINUX等平台,下面简单介绍在UBUNTU平台安装和测试mosquitto过程。

在IOT物联网的世界里,目前有一种主流的协议叫做MQTT协议,这个协议架构主要有发布[publisher]、订阅[subscriber]和代理[broker]三部分组成,此协议在2014年推出3.1版本,2019年推出5.0版本。网上有许多优秀的代理软件基于3.1版本开发,例如mosquitto,为C语言开发,支持WINDOWS,LINUX等平台,下面简单介绍在UBUNTU平台安装和测试mosquitto过程。

1.打开命令行窗口,使用APT下载安装MOSQUITTO软件
安装过程中,会提示各种配置信息,当再次出现命令行提示符时,表示安装完成;
sudo apt install mosquitto
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
libev4 libuv1 libwebsockets7
下列【新】软件包将被安装:
libev4 libuv1 libwebsockets7 mosquitto
升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 16 个软件包未被升级。
需要下载 0 B/256 kB 的归档。
解压缩后会消耗 716 kB 的额外空间。
您希望继续执行吗? [Y/n] y
【警告】:下列软件包不能通过认证!
mosquitto
没有验证的情况下就安装这些软件包吗? [y/N] y
正在选中未选择的软件包 libuv1:amd64。
(正在读取数据库 ... 系统当前共安装有 290224 个文件和目录。)
正准备解包 .../libuv1_1.8.0-1_amd64.deb ...
正在解包 libuv1:amd64 (1.8.0-1) ...
正在选中未选择的软件包 libev4。
正准备解包 .../libev4_1%3a4.22-1_amd64.deb ...
正在解包 libev4 (1:4.22-1) ...
正在选中未选择的软件包 libwebsockets7:amd64。
正准备解包 .../libwebsockets7_1.7.1-1_amd64.deb ...
正在解包 libwebsockets7:amd64 (1.7.1-1) ...
正在选中未选择的软件包 mosquitto。
正准备解包 .../mosquitto_1.4.8-1ubuntu0.16.04.7_amd64.deb ...
正在解包 mosquitto (1.4.8-1ubuntu0.16.04.7) ...
正在处理用于 libc-bin (2.23-0ubuntu11.3) 的触发器 ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在处理用于 systemd (229-4ubuntu21.29) 的触发器 ...
正在处理用于 ureadahead (0.100.0-19.1) 的触发器 ...
正在设置 libuv1:amd64 (1.8.0-1) ...
正在设置 libev4 (1:4.22-1) ...
正在设置 libwebsockets7:amd64 (1.7.1-1) ...
正在设置 mosquitto (1.4.8-1ubuntu0.16.04.7) ...
正在处理用于 libc-bin (2.23-0ubuntu11.3) 的触发器 ...
a@a-xxxxxxx-xxxx:~$
2.运行mosquitto -h,确认安装软件的版本信息;
mosquitto -h
mosquitto version 1.4.8 (build date Tue, 18 Jun 2019 11:59:34 -0300)

mosquitto is an MQTT v3.1 broker.

Usage: mosquitto [-c config_file] [-d] [-h] [-p port]

-c : specify the broker config file.
-d : put the broker into the background after starting.
-h : display this help.
-p : start the broker listening on the specified port.

  Not recommended in conjunction with the -c option.

-v : verbose mode - enable all logging types. This overrides

  any logging options given in the config file.

See http://mosquitto.org/ for more information.

3.更新或创建配置文件
使用下面命令行打开配置文件
sudo gedit /etc/mosquitto/mosquitto.conf
然后将下面内容拷到文件中,保存退出。
pid_file /var/run/mosquitto.pid

消息持久存储

persistence true
persistence_location /var/lib/mosquitto/

日志文件

log_dest file /var/log/mosquitto/mosquitto.log

其他配置

include_dir /etc/mosquitto/conf.d

禁止匿名访问

allow_anonymous false

认证配置

password_file /etc/mosquitto/pwfile

权限配置

acl_file /etc/mosquitto/aclfile

4.使用下面命令,创建认证配置服务
sudo touch /etc/mosquitto/pwfile

5.使用下面命令添加新用户和对应的密码,密码测试用输入123456.
sudo mosquitto_passwd /etc/mosquitto/pwfile user1
Password:
Reenter password:
sudo mosquitto_passwd /etc/mosquitto/pwfile user2
Password:
Reenter password:

6.为新用户进行权限配置
使用下面的命令打开权限配置文件
sudo gedit /etc/mosquitto/aclfile
然后将下面的内容输入到文件中,这里创建两个用户,分别对应不同读写权限,然后保存退出;

user1只能发布以test为前缀的主题,订阅以$SYS开头的主题即系统主题

user user1
topic write test/#
topic read $SYS/#

user2只能订阅以test为前缀的主题

user user2
topic read test/#

7.再次在命令行中输入下面的命令,启动mosquitto服务器,其中参数c表示指定特定配置文件启动,参数d表示后台运行
mosquitto -c /etc/mosquitto/mosquitto.conf -d

8.模拟测试
还提供另外两个命令行软件,一个是mosquitto_pub发布消息,一个是mosquitto_订阅消息。
可以先用下面的命令配置第一个用户的订阅信息;
mosquitto_sub -h localhost -t "test/#" -u user2 -P 123456 -i "client1"&
然后配置订阅第二个用户的信息:
mosquitto_sub -h localhost -u user1 -P 123456 -i "client2" -t '$SYS/broker/clients/active'& #发布者 订阅 者都算存活连接
然后新打开一个命令行窗口,使用mosquitto_pub向第一个用户发布一条消息;
mosquitto_pub -h localhost -t "test/abc" -u user1 -P 123456 -i "client3" -m "Hello,World!"
这时会看的之前的命令行窗口会显示收到的消息。

目录
相关文章
|
4月前
|
并行计算 Ubuntu Docker
百度Apollo探索之旅:迈出第一步基础软件安装指南(文末赠送apollo周边)
百度Apollo探索之旅:迈出第一步基础软件安装指南(文末赠送apollo周边)
100 0
|
8月前
|
安全 Linux 数据安全/隐私保护
AWVS多平台安装(保姆级)教程
AWVS多平台安装(保姆级)教程
784 0
|
JSON 数据格式
如何将自制的live2d模型上传至facerig创意工坊使得别人可以下载
如何将自制的live2d模型上传至facerig创意工坊使得别人可以下载
492 0
|
JavaScript 关系型数据库 MySQL
超级实用,centos7.3安装 Etherpad 搭建一个线上协同创作平台(多人一起在线编写)
超级实用,centos7.3安装 Etherpad 搭建一个线上协同创作平台(多人一起在线编写)
701 0
超级实用,centos7.3安装 Etherpad 搭建一个线上协同创作平台(多人一起在线编写)
|
5月前
|
网络协议 安全 网络安全
快来了解如何使用frp配置实验室服务器来内卷吧~
导师之前新购了3090N卡的服务器,然而只能内网访问,一开始大家使用向日葵软件远程连接,但这有个弊端,这样的桌面只能一个人使用,效率极低。 为了能够让服务器更好地造福于人,我发现了frp的存在,正巧自己还有一台到25年才过期的腾讯云轻量服务器,于是就开始桥接的工作。
72 0
|
9月前
|
移动开发 小程序 安全
东郊到家app丨h5网页版丨小程序丨系统开发成熟技术/案例分析/规则介绍/源码稳定版
  东郊到家App是一个提供便利的生活服务平台,用户可以通过该应用程序在家中享受各种服务,如家政服务、美容美发、保洁、维修等。
|
12月前
|
Python
现场打脸:如何使用Selenium批量上传文件?
现场打脸:如何使用Selenium批量上传文件?
158 0
|
存储 传感器 物联网
物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
490 0
物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
开放下载!《阿里云RPA-电商应用神器》产品资料
开放下载!《阿里云RPA-电商应用神器》产品资料
|
前端开发 JavaScript PHP