【MQTT服务器】(一)EMQX平台搭建

系列文章目录

【MQTT服务器】(一)EMQX平台搭建

【MQTT服务器】(二)SpringBoot+Mysql数据库存储MQTT消息

【MQTT服务器】(三)MQTT终端设备

【MQTT服务器】(四)搭建网页


目录

系列文章目录

【MQTT服务器】(一)EMQX平台搭建

【MQTT服务器】(二)数据库存储消息

【MQTT服务器】(三)MQTT终端设备

【MQTT服务器】(四)搭建网页

前言

二、使用步骤

1.下载EMQX安装包

2.上传EMQX安装包

3.start运行

 4.网页查看

总结


前言

       现在网上的物联网平台还是挺多的,比如国外开源的homeassistant,阿里云的物联网平台,其它云也有对应的物联网平台就不一一说了。在物联网设备中,最重要的就是联网通讯了,上报设备的状态或者信息,接收指令等等。物联网的通讯协议常见的有下面七种:MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP。

        MQTT协议(低带宽),一般适用于设备数据采集从端到服务器的集中星型网络架构
        DDS协议(高可靠性、实时),广泛应用于国防、民航、工业控制等领域
        AMQP协议(互操作性),主要适用于移动手持设备与后台数据中心的通信和分析
        XMPP协议(即时通信),在互联网及时通讯应用中运用广泛
        REST/HTTP(松耦合服务调用),客户端和服务器之间交互松耦合,适合在物联网的应用层面
        CoAP (受限应用协议),适用于在资源受限的通信的IP网络
        JMS (JAVA消息服务),用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信

MQTT因为其低带宽的优点,现在大部分嵌入式物联网设备都是采用的这种协议。


一、EMQX是什么?

EMQX (Erlang MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。

Erlang/OTP是出色的软实时 (Soft-Realtime)、低延时 (Low-Latency)、分布式 (Distributed)的语言平台,而MQTT 是轻量的 (Lightweight)、发布订阅模式 (PubSub) 的物联网消息协议。

EQMX消息服务器具有以下特点。

  1. 稳定承载大规模的 MQTT 客户端连接,单服务器节点支持 200 万连接。
  2. 分布式节点集群,快速低延时的消息路由。
  3. 消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。
  4. 完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 或私有协议支持

可以看到,EMQX性能是非常强大的,而且还可以进行分布式配置节点,作为只有十个不到的物联网设备测试服务器是绰绰有余的。

二、使用步骤

1.下载EMQX安装包

        网上获取EMQX安装包的途径还是蛮多的,github或者官网都可以下载,不是CentOS 8系统推荐官网下载,因为可以直接选择平台和格式,不用自己一个一个去找。

        我使用的阿里云服务器是CentOS 8.2 64位,censtos8在2021年12月31日已经完成生命周期了,官网推荐的版本选择amd64.rpm格式,虽然能安装,但是运行会报错,找了半天,终于找到一个能用的版本-4.3.8版本github地址

        出现下面的错误,可能是下载的安装包跟平台不一致导致的,也可能是openssl库没有安装。

        可以先尝试安装这个库--openssl的github安装说明。不行的话只能换安装包了。

错误一:

{"init terminating in do_boot",{undef,[{crypto,start,[],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]}}
init terminating in do_boot ({undef,[{crypto,start,[],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]})

Crash dump is being written to: erl_crash.dump...done
FATAL: Unable to start Erlang.
Please make sure openssl-1.1.1 (libcrypto) and libncurses are installed.
Also ensure it's running on the correct platform,

错误二:

./emqx: line 40: /home/emqtt/emqx/erts-12.1.5/bin/erl: cannot execute binary file: Exec format error
FATAL: Unable to start Erlang.
Please make sure openssl-1.1.1 (libcrypto) and libncurses are installed.
Also ensure it's running on the correct platform,
this EMQX release is built for 24.1.5-3-aarch64-unknown-linux-gnu-64-el8

2.上传EMQX安装包

        直接通过宝塔面板将文件上传到服务器上,rpm格式的安装包可以直接安装,zip格式的可以在同一个页面这直接进行文件解压。

​ 

        刚刚也说了,CentOS 8已经停止服务了,yum会报错。

        解决方法,直接找阿里云小智--CentOS 8 EOL如何切换源?

3.start运行

       rpm安装方式,可以不用管当前所在路径,输入下面命令直接开始运行。

emqx start

        zip安装方式需要,切换到bin目录,用以下方式运行。

./bin/emqx start

        下面这个就表示运行成功了。

 4.网页查看

       因为安全组的问题,阿里云和宝塔面板都需要放行以下端口,不然无法访问页面,MQTT消息也没法发送/接收。

        EMQX首页页面默认是18083端口,所以在浏览器里面输入下面的地址就行。

http://[ecs公网地址]:18083/

 EMQX的首页页面。

 可以设置成中文

        现在没有设备连接,所以客户端界面没有显示,可以使用emqx自带的网页版本。

         也可以使用MQTT.fx软件,作为一个客户端进行连接测试,首先需要配置一下服务器。    

 主要是配置emqx服务的ip和端口1883(不是网页页面的端口,这个是MQTT通信的端口),模拟设备的用户名(多个设备的用户名不能重复,不然会导致冲突,一个上线了另外一个就会下线),其它的默认就行,如果设置了用户和密码,需要在User Credentials里面配置。

         配置完,点击Connect就可以连接了,可以看到fx001已经显示出来了。

        可以在Subscribe先订阅一个主题,然后回到Publish发布一个消息。

         现在是同一台电脑订阅、发布,你也可以换另外一个设备Publish发布一个aaa的消息。

         订阅里面可以看到成功发布了aaa的消息。

         怎么通过emqx查看是否收到消息呢?可以通过主题监控,新建刚刚的MQTT_TEST/a主题

         再发送一条abc消息,可以看到消息流入是Publish界面发布的,消息流出是订阅Subscibe界面收到的。


总结

        EMQX的安装和简单使用教程基本上到这就结束了,这里还存在一些问题,比如网页上是无法查看主题具体发布了什么消息,只能查看到统计数量,并且消息没有记录到数据库里面进行保存,下一节搭建一个服务器显示消息和保存数据到数据库。

### 如何在 Windows 操作系统上安装和配置 EMQX MQTT 服务器 #### 准备工作 为了顺利安装并运行 EMQX,在 Windows 平台上需先确认已安装有适用于 Windows 的 Docker 或者直接下载官方提供的二进制文件。 #### 使用 Docker 安装 EMQX 对于希望简化环境搭建过程的情况,推荐通过 Docker 来部署 EMQX: 1. 如果尚未安装 Docker Desktop,请访问官方网站获取最新版并完成安装。 2. 打开命令提示符或 PowerShell 终端窗口,执行如下指令来拉取最新的 EMQX 镜像: ```powershell docker pull emqx/emqx:v5.0.28 ``` 3. 启动容器化后的 EMQX 实例: ```powershell docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:v5.0.28 ``` 此操作会启动个名为 `emqx` 的后台服务,并映射必要的网络端口以便外部连接[^2]。 #### 直接安装 EMQX 二进制包 如果倾向于不依赖虚拟化的传统方式,则可以考虑直接安装 EMQX 提供的 Windows 版本程序包: 1. 访问 [EMQX 下载页面](https://www.emqx.io/downloads),选择适合当前系统的 .zip 压缩包进行下载; 2. 解压缩所获得的 ZIP 文件到指定目录; 3. 进入解压后的文件夹路径下的 bin 子目录,双击 `emqx.exe` 即可启动应用程序;也可以通过命令行工具进入对应位置后输入 `.\emqx.exe start` 开启服务[^3]。 #### 测试客户端连接 旦成功设置了上述任方案中的 EMQX 服务器部分之后,就可以利用如 MQTTX 等支持 MQTT 协议的消息发布/订阅型应用来进行功能测试了。确保将 Host 字段设置为本地主机地址 (`localhost`) 或者远程服务器的真实 IP 地址而非默认值 `127.0.0.1`[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xanadw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值