mqtt 在生产中的配置使用实例

发布时间:2022-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了mqtt 在生产中的配置使用实例脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

https://www.cnblogs.com/qianxiaoruofeng/p/15659264.html 消息队列是计算机中不可或缺的一个重要角色,用好mq 能给我们的工作减少更多的工作量,提高办公的效率。

什么是mqtt ,先了解一下。

https://mqtt.org/

mqtt 在生产中的配置使用实例

mqtt 在生产中的配置使用实例

https://www.emqx.com/zh

下载服务端程序、和客户端的程序

serve 端,今天我们用的是windows版本的mosquitto试验 https://mosquitto.org/download/

mqtt 在生产中的配置使用实例

你也可以选择emqx作为更多的集成支持的mqtt https://www.emqx.com/zh/try?product=broker

安装 mqtt server 必须以管理员身份安装,否者后面没法使用启动不成功。

mqtt 在生产中的配置使用实例

上图是mosquitto 安装成功后目录结构

mqtt 在生产中的配置使用实例

目录下面有几个安装阅读的文件,你一看便知文件的作用

配置mqtt

mqtt 支持默认不配置可以启动,但是生产中不安全,存在数据泄露的风险,所以我们就讲一下他的配置。 我们就在这里讲最低的一个账户密码配置,不让所有人都能登录。

mqtt 在生产中的配置使用实例

在mosquitto.conf配置文件 设置不允许任何人登录,且设置登录用户和指定密码文件还要设置权限acl文件 allow_anonymous允许匿名

password_file密码文件

acl_file访问控制列表

allow_anonymous false
password_file C:/Program Files/mosquitto/pwfile.example
user mac
acl_file C:/Program Files/mosquitto/acl

mqtt 在生产中的配置使用实例

在pwfile 中添加用户, 指令如下:

#mosquitto_passwd -c pwfile mac

你要输入你电脑的账号密码,否者这个borker设备无法登录。 输入两次之后正常显示之后,说明你的用户配置正确

mqtt 在生产中的配置使用实例

密码文件里面就多出这样一行。

mqtt 在生产中的配置使用实例

acl 文件是这样的。 然后通过配置文件启动mqttserver

mosquitto -c mosquitto.conf 

这样启动mqttserver 这里可能会多次权限不够什么的,你就要主义配置文件是否正确了。

也可以直接点击exe启动不带参数启动,那样不安全,很多时候会出现闪退,你要注意。

mqtt 在生产中的配置使用实例

下面是设置mqtt 订阅, 用的是这个程序

mqtt 在生产中的配置使用实例

#mosquitto_sub -h 192.168.1.100 -t mtopic -u username -P passwd

mqtt 在生产中的配置使用实例

下面是设置mqtt 发布,

#mosquitto_pub -h 192.168.1.100 -t mtopic -u username -P passwd -m "test"

mqtt 在生产中的配置使用实例

我们来mqtt 工具里面来设置一下,做订阅和发布的事情,it's creazy 。

mqtt 在生产中的配置使用实例

mqtt 在生产中的配置使用实例

mqtt 在生产中的配置使用实例

这里要保持客户端id不一样,否者这个本机一台机器就会一个上线,一个下线互相抢断。

mqtt 在生产中的配置使用实例

关于topic 设置

一个客户端订阅,一个客户端发布,就可以看到,消息流的产生了。 还要注意一个topic 设置的格式。 (1)主题层级分隔符 / : 用于分割主题层级,/分割后的主题,这是消息主题层级设计中很重要的符号。 比方说: aaa/bbb和 aaa/bbb/ccc 和aaa/bbb/ccc/ddd ,这样的消息主题格式,是一个层层递进的关系,可通过多层通配符同时匹配两者,或者单层通配符只匹配一个。 这在现实场景中,可以应用到:公司的部门层级推送、国家城市层级推送等包含层级关系的场景。 (2) 单层通配符 +: 单层通配符只能匹配一层主题。比如: aaa/+ 可以匹配 aaa/bbb ,但是不能匹配aaa/bbb/ccc。 单独的+号可以匹配单层的所有推送; (3) 多层通配符 #: 多层通配符可以匹配于多层主题。比如: aaa/# 不但可以匹配aaa/bbb,还可以匹配aaa/bbb/ccc/ddd。 也就是说,多层通配符可以匹配符合通配符之前主题层级的所有子集主题。单独的#匹配所有的消息主题. 注: 单层通配符和多层通配符只能用于订阅(subscribe)消息而不能用于发布(publish)消息,层级分隔符两种情况下均可使用。

你们都知道mqtt协议最基本的思想就是发布订阅,也就是一个设备发布多个设备订阅。 设备发布者发布一个主题,其它设备经过订阅能够得到主题发布者发送的消息。 网关做为发布者发布两个主题: 通配:dev/用户ID/公司ID/项目ID/设备MAC/# 主题一:dev/用户ID/公司ID/项目ID/设备MAC/0 该主题为设备订阅的主题,用来发送设备信息给用户,只能为指定设备发布 主题二:dev/用户ID/公司ID/项目ID/设备MAC/1 该主题为设备订阅的主题,用户用来发送信息给设备,该主题任何用户可发布消息 这里的 “设备MAC” 地址是惟一的。web

设备运行后,首先,订阅主题二 而后: 利用主题一,定时发布消息。 利用主题二,不断的接收消息。svg

用户运行后,首先,订阅主题一 而后利用主题一,接收设备发送的消息。 利用主题二,发送控制信息。xm 参考文档: https://mosquitto.org/documentation/ https://www.cnblogs.com/saryli/p/9818721.html https://www.jianshu.com/p/d96239675831 https://www.shangmayuan.com/a/59eb0278bba241878c28fbf6.html

脚本宝典总结

以上是脚本宝典为你收集整理的mqtt 在生产中的配置使用实例全部内容,希望文章能够帮你解决mqtt 在生产中的配置使用实例所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: