场景
Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试:
Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试_微软消息队列 测试工具-CSDN博客
Windows服务器上Mqtt服务器EMQX的安装使用:
Windows服务器上Mqtt服务器EMQX的安装使用_windows emqx是-CSDN博客
如果是在CentOS服务器上,且服务器不通外网,如何通过离线安装的方式进行MQTT协议的调试。
mosquitto
mosquitto是一款开源的MQTT消息代理(服务器)软件,实现了MQTT协议版本3.1和3.1.1,提供轻量级的,支持可发布/可订阅的的消息推送模式,
使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。
Mosquitto项目还提供了用于实现MQTT客户端的C库以及非常受欢迎的mosquitto_pub和mosquitto_sub命令行MQTT客户端。
mosquitto官网地址:
Eclipse Mosquitto
mosquitto源码地址:
GitHub - eclipse/mosquitto: Eclipse Mosquitto - An open source MQTT broker
文档中明确指出发布和订阅主题的指令
发布:
mosquitto_pub -t 'test/topic' -m 'hello world'
订阅:
mosquitto_sub -t 'test/topic' -v
更多订阅指令说明,参照:
mosquitto_sub man page | Eclipse Mosquitto
其安装方式有很多种,具体看官网文档说明。
Download | Eclipse Mosquitto
当然这里如果要进行离线安装,也可以通过编译源码的方式进行。
但是为避免编译源码后运行仍然提示缺某某依赖的情况,这里使用rpm离线安装的形式。
注:
博客:
霸道流氓气质-CSDN博客
实现
CentOS上使用rpm离线安装三方组件的过程
其实不光是离线安装mosquitto,安装其他依赖方式也类似。即线上服务器不通外网,无法通过yum等在线安装的方式进行。
那么可以使用一台能通外网的、与线上服务器操作系统一致的机器先行下载依赖,然后再将所有的rpm传输到线上服务器,再进行离线安装。
yum更换镜像源为阿里镜像源
上面在通外网机器上yum安装mosquitto提示:
Could not resolve host: mirrorlist.centos.org;未知的错误
这时需要更换yum的镜像源
第一步,将原镜像源备份。
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
第二步,下载阿里的镜像源文件
使用wget或者手动下载后传输到服务器上
http://mirrors.aliyun.com/repo/Centos-7.repo
或直接从文末资源包中获取。
然后将下载后文件修改为名称为CentOS-Base.repo,并将原位置文件替换掉
替换之后清除并重建yum缓存
yum clean all
yum makecache
Centos中安装epel库
epel:
EPEL(Extra Packages for Enterprise linux)是一个专门为Enterprise Linux发行版开发的软件仓库。
它最初由Fedora项目创建,现在也被Red Hat,CentOS和Scientific Linux所支持。
EPEL软件仓库有数百个软件包,它们的内容主要是由Fedora项目的社区成员维护和更新。
很多时候,我们安装完了linux系统之后,一般都会把yum源改成国内阿里云,或者华为云啥的,这样方便高速下载。
我们在Centos下使用yum安装时往往找不到rpm的情况,官方的rpm repository提供的rpm包也不够丰富,
而EPEL恰恰可以解决这两方面的问题。EPEL就是一个第三方的(非yum官方组织搞出来的额外软件库)
当你需要下载一些很小众的软件时候,yum在阿里云仓库里找不到这个小众软件的时候,它会自动询问epel仓库,99.99%的情况下,
可以在epel仓库找到。
执行如下指令
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum中离线只下载rpm包到指定路径
上面修改了yum的镜像源并安装epel后,就可以使用yum下载mosquitto所需的rpm依赖包了,为方便下载与传输,将其下载到指定目录下
执行如下指令
yum install mosquitto -y --downloadonly --downloaddir=/home/test/mqtt
这里将其下载到/home/test/mqtt目录中
下载完成之后可以发现有三个rpm包
rpm离线安装当前目录下所有的rpm包
将上面下载的rpm包复制到无法通外网的服务器某目录下,在次目录下执行
rpm -Uvh --nodeps *.rpm
其中:
-Uvh 表示升级已经存在的软件包或者安装新的软件包。其中 v 参数可选,表示在安装过程中显示详细信息。
*.rpm 表示需要安装的 RPM 软件包文件名,* 通配符可以匹配所有的 RPM 文件。
--nodeps 参数表示不检查软件包之间的依赖关系,直接安装该软件包。
离线安装成功
Mosquitto订阅mqtt协议主题数据指令与在线mqtt协议调试网址
上面mosquitto离线安装成功后如何验证和订阅mqtt主题进行调试
本地能通外网可以使用如下
网络在线mqtt协议调试网址:
test.mosquitto.org
具体使用参考网站说明
上面测试网站可使用如下指令调试:
mosquitto_sub -h test.mosquitto.org -t "#"
mosquitto订阅主题指令线上调试:
mosquitto_sub -h mqtt的ip -p mqtt端口 -t mqtt主题 -u '用户名' -P '密码'
线上调试结果
附资源打包下载地址
https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/89759420