树莓派搭建MQTT服务器(基于EMQ)「建议收藏」

树莓派搭建MQTT服务器(基于EMQ)「建议收藏」文章目录1.准备工作1.1知识储备2.安装EMQ3.测试MQTT服务器3.1新建服务器管理员3.2登录到服务器后台3.3MQTT客户端测试1.准备工作1.1知识储备关于MQTT协议能点进来的基本都知道MQTT协议是啥了吧,不知道的自行百度吧,这里就默认各位都知道了。关于EMQEMQX是一款完全开源,高度可伸缩,高可用的分布式MQTT消息服务器,适用于IoT、M2M和移动应用程序,可处理千万级别的并发客户端。EMQX是跨平台的,支持Linux、Unix、macOS以

大家好,又见面了,我是你们的朋友全栈君。

1.准备工作

1.1知识储备

关于MQTT协议

能点进来的基本都知道MQTT协议是啥了吧,不知道的自行百度吧,这里就默认各位都知道了。

关于EMQ

EMQ X 是一款完全开源,高度可伸缩,高可用的分布式 MQTT 消息服务器,适用于 IoT、M2M和移动应用程序,可处理千万级别的并发客户端。
EMQ X 是跨平台的,支持 Linux、Unix、macOS 以及 Windows。这意味着EMQ X 可以部署在 x86_64 架构的服务器上,也可以部署在 Raspberry Pi 这样的 ARM 设备上。

–摘抄自官方GitHub介绍

其他:

MQTT官方网站:【入口】
EMQ官方文档:【入口】
EMQ开源代码:【GitHub】

2.安装EMQ

  1. 选择合适的系统版本进行下载安装

https://www.emqx.cn/downloads#broker

树莓派安装参考:
在这里插入图片描述

关于系统说明:我的树莓派安装的官方的Ubuntu系统,树莓派原装的Raspbian是基于Debian改进的,因此,如果是官方的系统,请选择Debian一栏。另,无论是ubuntu系统,还是Raspbian系统,其CPU架构均是arm64,注意别选错哦!

查看系统版本信息:

uname -a

在这里插入图片描述
参考官方指示,安装代码如下:

wget https://www.emqx.cn/downloads/broker/v4.3.5/emqx-ubuntu20.04-4.3.5-arm64.deb
  1. 安装EMQ服务器
sudo apt install ./emqx-ubuntu20.04-4.3.5-arm64.deb    
  1. 启动MQ服务器
sudo emqx start

在这里插入图片描述

  1. 查看MQ服务器状态
sudo emqx_ctl status

在这里插入图片描述
综上,恭喜你,你的服务器就算安装好了!

3.测试MQTT服务器

3.1 新建服务器管理员

在这里插入图片描述
示例:

sudo emqx_ctl admins add root mgodmonkey admin

账号:root 密码:mgodmonkey 分组:admin

3.2 登录到服务器后台

连接到与树莓派同一局域网,浏览器访问:
http://{你树莓派的内网ip}:18083/
如:http://10.34.171.27:18083/
或在树莓派中的浏览器访问:
http://localhost:18083/
输入之前创建好的管理员账号

在这里插入图片描述
在这里插入图片描述
关于服务器的一些端口说明:
1883:MQTT 协议端口
8883:MQTT/SSL 端口
8083:MQTT/WebSocket 端口
8080:HTTP API 端口
18083:Dashboard 管理控制台端口

注:若访问网址失败,可通过以下排错

  1. 查看服务器是否正常启动
  2. 查看IP是否正确
  3. 查看树莓派相关端口是否开放(开放端口相关的知识自行百度哈)

3.3 MQTT客户端测试

这里用到了MQTTbox客户端,这是mqtt可视化非常好用的一款软件。
官方下载网址:

http://workswithweb.com/html/mqttbox/downloads.html

网页打不开?怀疑是网络问题?no,no,no,事实证明就是打不开的,即使是在科学上网的状态下,这是我在网上找的网址,我也试到怀疑人生了,但最后我在微软的应用商店中找到了同款,如果无法访问的同学,可在应用商店中下载。

  1. 创建MQTT客户端
    在这里插入图片描述
  2. 配置如下
    在这里插入图片描述
    保存并返回,这里标绿则说明连接成功

在这里插入图片描述

  1. 订阅一个主题并测试
    在这里插入图片描述
    在这里插入图片描述
    在右测观察到发送的内容即说明服务器的功能一切正常!
    在这里插入图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140389.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 推荐一个命名变量的神奇网站 CODELF

    推荐一个命名变量的神奇网站 CODELF推荐一个命名变量的神奇网站CODELF在我们写程序的时候,总是需要去给各种变量命名。于是各种命名大法都上来了,有拼音的,有首字母缩写的,各种各样。而我们推荐的命名肯定是英文的驼峰命名。今天给大家推荐一个网站:https://unbug.github.io/codelf/这个网站可以根据你输入的关键词,给出很多变量命名的推荐。并且支持中文。另外,针对各种主流编辑器,还有插件。非常推荐大家收藏一下这个

    2022年5月4日
  • MYSQL 数据库导入导出命令

    MYSQL 数据库导入导出命令

    2021年9月24日
  • 【Linux】NAT模式下关于主机ping不通虚拟机的问题

    【Linux】NAT模式下关于主机ping不通虚拟机的问题今天打开虚拟机,然后用Xshell远程连接,发现连接不上。按照以下顺序检查了一遍。1.虚拟机网络连接采用的是NAT模式2.虚拟机IP采用的是自动获取。IP:192.168.191.130子网掩码:255.255.255.0默认网关:192.168.191.23.虚拟机ping主机,可以ping通主机IP地址为:192.168.1.2444.主机ping虚拟机,请求超时5.原因分析最大的原

    2022年6月18日
  • linux smartctl 命令,使用smartctl命令检查磁盘

    linux smartctl 命令,使用smartctl命令检查磁盘使用smartctl命令检查磁盘在TS过程中会碰到很多磁盘异常出现影响系统数据或者生产数据的情况,但是有时候无法判断磁盘出现问题是由于磁盘物理损坏还是磁盘SATA口接触不良导致,这个时候smartctl命令就可以很容易判断出磁盘是否存在物理损坏问题,并且及时作出预警。使用smartctl进行SMART测试所有现代硬盘都可通过SMART属性监视其当前状态。这些值提供有关硬盘各种参数的信息,并可提供有…

    2022年6月16日
  • BigDecimal.setScale方法

    BigDecimal.setScale方法BigDecimal.setScale()方法用于格式化小数点BigDecimal.setScale(1)表示保留一位小数,默认用四舍五入方式 BigDecimal.setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如1.11会变成1.1 BigDecimal.setScale(1,BigDecimal.ROUND_UP)进位处理,1.11变成1.2 BigD…

    2022年10月20日
  • USB协议分析仪

    USB协议分析仪USB协议分析仪

    2022年6月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号