centos 安装 mqtt服务到订阅的整个过程

  • Post author:
  • Post category:其他




centos 安装 mqtt服务到订阅的整个过程

一、安装Mosquitto

在默认情况下,CentOS 7没有mosquitto程序包。首先我们将安装一个额外的软件软件包,即Epel。这个存储库囊括了安装在CentOS、RedHat和其他面向企业的Linux发行版上的附加软件。

使用yum包管理器来安装epel-release包。

sudo yum -y install epel-release

安装mosquitto

sudo yum -y install mosquitto

启动

sudo systemctl start mosquitto

重新启动系统时启动:

sudo systemctl enable mosquitto

现在让我们测试默认配置。mosquitto包附带了一些MQTT客户端命令行。我们将使用其中一个订阅代理上的主题。

主题是您发布消息并订阅的标签。它们按等级排列,你可以有sensors/outside/temp和sensors/outside/humidity。在本教程中,我们将使用一个简单的测试主题来测试配置。

您需要创建一个新的终端,创建方法很简单,重新打开一个新的终端页面,重新登录服务器即可。在新的终端中,使用mosquitto_sub订阅测试主题:

mosquitto_sub -h localhost -t test

-h用于指定MQTT服务器的主机名,-t是主题名。ENTER后没有输出,是因为mosquitto_sub在等待消息的到来。切换回另一个终端并发布一条消息:

mosquitto_pub -h localhost -t test -m "hello world"

mosquitto_pub的选项与mosquitto_sub相同,这一次我们使用了额外的-m选项来指定我们的消息。点击ENTER,你应该看看hello world 输出在在另一个终端中。你已经学会发送第一条MQTT信息!

在第二个终端中按下CTRL+C退出mosquitto_sub,不要关闭其他终端哦,后面我们还要进行测试。

二、配置MQTT密码

Mosquitto包含一个工具,用于生成一个特殊的密码文件,名为mosquitto_passwd。此工具将提示您输入指定用户名的密码,并将结果放在/etc/mosquitto/passwd.

sudo mosquitto_passwd -c /etc/mosquitto/passwd sammy

现在,我们将替换默认的配置文件,并告诉Mosquito使用这个密码文件来要求所有连接的登录。首先,删除现有的mosquitto.conf.

sudo rm /etc/mosquitto/mosquitto.conf

现在打开一个新的空配置。

sudo vi /etc/mosquitto/mosquitto.conf

粘贴在下面。

allow_anonymous false
password_file /etc/mosquitto/passwd

allow_anonymous false将禁用所有未经身份验证的连接,并且password_file告诉Mosquitto在哪里查找用户和密码,保存并退出文件。

现在我们需要重新启动Mosquitto并测试。

sudo systemctl restart mosquitto

尝试在没有密码的情况下发布消息。

mosquitto_pub -h localhost -t "test" -m "hello world"

再次尝试使用密码登录之前,请再次切换到您的第二个终端窗口,并使用用户名和密码订阅“test”主题:

mosquitto_sub -h localhost -t test -u "sammy" -P "password"

现在用另一个终端使用用户名和密码发布一条消息:

mosquitto_pub -h localhost -t "test" -m "hello world" -u "sammy" - "password"`

下面是mqtt测试工具地址

https://mqttx.app/zh

下面是测试推送情况

在这里插入图片描述

关注我,每天看精彩。

这是mqtt简单的使用流程,后期有新认知会继续更新。



版权声明:本文为qq_44870453原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。