ubuntu安装mqtt服务器----mosquitto

岳小威子
2022-06-14 / 804 个字 / 0 评论 / 79 阅读 / 加载耗时:26ms / 正在检测是否收录...
温馨提示:
本文最后更新于2022年06月14日,已超过680天没有更新,若内容或图片失效,请留言反馈。

MQTT的工作机制与http不同,服务器只是起着一个中转站的功能。每个客户端,都可以把消息通过服务器广播给所有其他客户端。Mqtt内称为订阅与发布:

订阅:客户端向服务器登记要订阅某主题,后续有以该主题发布的消息时,就会发给该客户端

发布:客户端向服务器发送一条消息,并说明要发布的主题,服务器就会将该消息广播给所有订阅了该主题的客户端

mosquitto是一款开源的mqtt服务器(mqtt协议内称为broker),由eclipse推出,简单易用。本文就是介绍他的安装步骤

1.安装

Ubuntu下不需要去官网下载源码进行编译,直接用apt命令安装即可
第一条命令是安装mosquito本体,第二条是安装一个mqtt客户端软件
sudo apt install mosquitto
sudo apt install mosquitto-clients

2.运行

下载后即可使用开始运行, 默认不需账号密码即可连接,默认使用1883端口。后面会介绍怎么修改配置。
  #启动服务
  sudo service mosquitto start
  #停止服务
  sudo service mosquitto stop
  #重启服务
  sudo service mosquitto restart 

3. 使用命令进行测试

我们先开启两个命令行窗口,一个发,一个收。

使用sub命令订阅主题,并进入接收状态,

mosquitto_sub  –v  -t "主题"
  可选:-h 指定服务器ip地址
        -u 指定登陆用的用户名
        -P 指定登陆密码

使用pub命令发布内容,所有订阅该主题的客户端都会收到

mosquitto_pub -t "主题" -m  "内容"
  可选:-h 指定服务器ip地址
        -u 指定登陆用的用户名
        -P 指定登陆密码

Mosquito配置

1 创建配置文件

配置是通过编写配置文件进行的。系统默认使用的配置文件是/etc/mosquitto/mosquitto.conf,

mosquitto.conf文件内申明了,所有存放在目录下的后缀名为.conf的文件,都会成为配置文件。既然官方都推荐将配置文件都放到那。

那我们新建一个my.conf文件存放到/etc/mosquitto/conf.d/路径下
sudo vim /etc/mosquitto/conf.d/my.conf

2 配置

完整的配置文件示例,存放在/usr/share/doc/mosquitto/examples/路径下,,可配置的项目很多,这里我们只配置启用几个常用的。

将于以下内容存放到上一步创建的my.conf文件中

#修改端口
port 1800
listener 9005  
protocol websockets

# 不允许匿名访问,需要使用账号密码才能连接服务器
allow_anonymous false

# 指定要使用的账号密码文件,需手动创建该文件
password_file /etc/mosquitto/pwfile

# 指定权限控制文件存放路径,需手动创建该文件
acl_file /etc/mosquitto/aclfile

3 添加用户

用touch命令创建文件,用于存储用户密码,这个路径是上一步指定的,你可以修改成别的

sudo touch /etc/mosquitto/pwfile

密码是加密存储的,需要使用mosquitto_passwd命令来创建账号。

以下命令的功能是创建user_pc这个用户,并将密码存储到指定的pwfile文件内,输入以下命令后会要求你输入密码。

sudo mosquitto_passwd /etc/mosquitto/pwfile user_pc

4 设置用户权限

先创建存放用户权限的文件,这个路径是写在my.conf内的,你可以修改成别的

sudo vim /etc/mosquitto/aclfile

权限文件示例如下,a/#代表以a/开头的所有主题,如a/test,a/b/c/d

#用户 user_pc
#只能发布 test/#
#只能订阅 a/#
#可以订阅与发布 b/#
user user_pc
topic write test/#
topic read  a/#
topic b/#

#用户a只能发布 a/#
user a
topic write  a/#


#所有用户都可以发布hhh/#
pattern write hhh/#

5 重启服务

sudo service mosquitto restart

文章到这里就结束了

您在本文章已经停留了大概
喜欢的话就点个赞吧!或着请我喝个冰可乐,我就太感谢你了!


0
打赏
拜谢打赏(☆ω☆)

感谢老板,老板大气。。

评论 (0)

取消