系列文章目录

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

【MQTT服务器】(一)EMQX平台搭建相关推荐

  1. 虚拟化搭建云服务器,服务器虚拟化系统平台搭建

    对各类资源进行合理分配,同时要建立冗余的虚拟环境,以满足系统迁移以及故障恢复的需要. 平台架构,在几台实体服务器上运行系统软件,并备有一台管理服务器,创建多台虚拟机,同时共享 CPU.内存.网络与存储 ...

  2. 直播网站云服务器搭建,什么是云服务器,直播平台搭建又该如何选择呢?

    一个直播平台搭建的成功离不开云服务器,互联网云时代的到来,为平台搭建提供了便利,很多人都听说过但对云服务器不是很了解,那么现在跟大家介绍一下什么叫做云服务器,我们在直播平台搭建时该如何选择云服务器? ...

  3. 摄像头 保存到外网服务器_直播平台搭建千万不要忽略流媒体服务器的存在

    "数据显示,2018年第四季度,陌陌直播服务营收29.592亿元(约4.304亿美元),与2017年同期的21.69亿元相比增长了36%.陌陌方面表示,直播服务营收的增长,主要原因在于直播服 ...

  4. 一步一步来:MQTT服务器搭建、MQTT客户端使用

    物联网应用如火如荼,本文就物联网应用中最受青睐的协议 MQTT相关测试工具的使用进行简单说明. 希望此文能给需要用到的朋友一些微薄的帮助-- 一.MQTT服务器( emqx )搭建 1. 下载服务器M ...

  5. 快速搭建个人MQTT服务器(基于EMQX)

    文章目录 B站视频 简述 服务器配置 安装 关于8083.8084端口 EMQX基本命令 EMQX配置文件 其他命令 B站视频 4分钟快速搭建个人MQTT服务器(基于EMQX) 简述 相信看到这篇教程 ...

  6. Ubuntu16.04LTS环境下搭建MQTT服务器以及QT实现MQTT客户端

    MQTT服务器搭建 使用EMQX搭建MQTT服务器,EMQX 4.2.14 for Ubuntu 16.04下载 下载zip包,选择安装方式为zip,cpu架构选择x86_64 按照网页的指示进行下载 ...

  7. MQTT服务器搭建与试用,桌面工具连接MQTT服务器

    简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠的网络的进行远程传感器和控制设备通 ...

  8. EMQX MQTT服务器 Windows部署

    EMQX MQTT服务器 Windows部署 MQTT协议 EMQX 平台 EMQX MQTT部署 说明 由于我正在着手的物联网项目需要进行通信,我在各种通信协议中进行比较.蓝牙等通信协议功耗太高,而 ...

  9. Windows下搭建MQTT服务器

    Windows下搭建MQTT服务器 1.MQTT服务器软件筛选 2.MQTT服务器软件mosquitto下载 3.修改mosquitto配置,并启动mosquitto服务 4.利用mosquitto工 ...

最新文章

  1. 暴风影音去广告链接和后台运行进程
  2. Linux系统 shell基础(二)
  3. Basketball Exercise CodeForces - 1195C(动态规划dp)
  4. 昨天订了一台FSC Lifebook S6220
  5. java 7.函数-递归_带有谓词的Java中的函数样式-第2部分
  6. java 通道 双向原理_Java-NIO(四):通道(Channel)的原理与获取
  7. 阿里P9专家右军:大话软件质量稳定性
  8. c语言程序100例第4题 参考了参考答案
  9. OFFICE | WORD VBA 合集
  10. jcabanillas/yii2-inspinia-asset composert 安装失败
  11. Uva 816 Abbott's Revenge 紫书165页例题
  12. Word引用参考文献
  13. 四叉树(QuadTree)图例、应用、实现
  14. 阿里巴巴服务器泡进“水里”液冷服务器技术
  15. python设置excel单元格格式_Python帮你做Excel——格式设置与画图
  16. <input>:1: UserWarning: The .grad attribute of a Tensor that is not a leaf Tensor is being accessed.
  17. python 微信公众号发文章_如何使用 Python 爬取微信公众号文章
  18. LuaBox积木编程开发手册-精编版
  19. 【分区助手】如何扩大C盘容量?
  20. 小米4可以刷入linux,给小米4刷上SailfishOS是怎样的体验?附刷机教程

热门文章

  1. TDengine创始人陶建辉:基础软件不开源必死无疑
  2. 多家知名企业笔试面试精华
  3. 从金山毒霸看这个社会的“底线”
  4. 迷你世界迷你编程 v1.0
  5. 【码支付系统】无授权—个人免签约支付系统二维码收款即时到账源码
  6. 陶哲轩实分析 习题 12.5.12
  7. 现代女生令我们如此失望
  8. 男生和女生的十个瞬间 (温馨啊)【转载】
  9. SMD元件尺寸大小公制英制对应说明
  10. 超市销售数据分析python_python实战案例:超市营业额数据分析