洵云芝士堂-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!"
这时会看的之前的命令行窗口会显示收到的消息。

目录
相关文章
|
Web App开发 存储 人工智能
从入门到进阶-如何基于FreeSWITCH搭建呼叫中心平台
FreeSWITCH 是一个开源的电话交换平台。博主从事多年AI技术,外呼中心搭建,需要演示站或技术支持联系博主。官方给它的定义是–世界上第一个跨平台的、伸缩性极好的、免费的、多协议的电话软交换平台
1565 0
|
3月前
|
监控 应用服务中间件 网络安全
FastAPI部署大揭秘!如何从代码到云端,让你的Web应用华丽变身生产环境之星?
【8月更文挑战第31天】FastAPI是一款基于Python 3.6+异步特性的高性能Web框架,深受开发者喜爱。本文详细介绍了将FastAPI应用部署到生产环境的过程,包括准备应用、使用Uvicorn测试、配置Gunicorn和Nginx、设置反向代理及监控日志等关键步骤。通过这些步骤,确保应用安全高效地运行在生产环境中,实现高性能与高可扩展性。
436 0
|
6月前
|
机器人 PHP
QQ云端机器人登录系统php源码
QQ云端机器人登录系统php源码
383 4
|
6月前
|
人工智能 Ubuntu 机器人
AI电销机器人系统源码部署之:freeswitch安装Linux
在Linux服务器上安装FreeSWITCH的简要步骤:更新软件包,安装依赖(如build-essential,libssl-dev等),下载v1.10.7源代码,解压并配置,编译,然后运行`./bootstrap.sh -j`,`./configure`,`make`,`make install`。启动FreeSWITCH服务,配置SIP用户和路由,测试连接与通话,并确保防火墙打开SIP(5060)和RTP端口。注意,实际部署可能需按需求调整。
|
JavaScript 前端开发 PHP
最新开发《直播拍卖软件APP系统v1.0版》源码
在当今数字化时代,拍卖直播应用程序已经成为了电商领域的不可或缺的一部分。东莞梦幻网络科技最新发布的《直播拍卖软件APP系统v1.0版》现成源码,更是把进入门槛成本费用进一步拉低。本文将深入探讨这一系统的开发与功能特点。
|
移动开发 小程序 安全
东郊到家app丨h5网页版丨小程序丨系统开发成熟技术/案例分析/规则介绍/源码稳定版
  东郊到家App是一个提供便利的生活服务平台,用户可以通过该应用程序在家中享受各种服务,如家政服务、美容美发、保洁、维修等。
|
运维 安全 Ubuntu
2023年最强手机远程控制横测:ToDesk、向日葵、Airdroid三款APP免Root版本
而随着移动设备和智能手机的普及,灵活轻便的手机平板上控制电脑也成为了一种趋势,我们需要一种更加高效、轻便的方式去开展远程协作和工作,因此我们需要一款强大的手机远程控制软件。本次横测我们选择了 ToDesk、向日葵和 AirDroid 这三款 APP 作为测试对象,它们都是知名度较高的远程控制软件,且均支持免 Root 版本。下面我们将对这三款软件进行详细的测试并给出使用心得。
7442 0
2023年最强手机远程控制横测:ToDesk、向日葵、Airdroid三款APP免Root版本
|
数据安全/隐私保护 Windows
FreeSwitch中的会议功能设置
FreeSwitch中的会议功能设置
|
存储 传感器 物联网
物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
718 0
物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
|
应用服务中间件 PHP nginx
Nginx+kodexplorer(可道云部署纪要)
Nginx+kodexplorer部署纪要,问题纪要
4462 0
下一篇
无影云桌面