【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消息服务器具有以下特点。
- 稳定承载大规模的 MQTT 客户端连接,单服务器节点支持 200 万连接。
- 分布式节点集群,快速低延时的消息路由。
- 消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。
- 完整物联网协议支持,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平台搭建相关推荐
- 虚拟化搭建云服务器,服务器虚拟化系统平台搭建
对各类资源进行合理分配,同时要建立冗余的虚拟环境,以满足系统迁移以及故障恢复的需要. 平台架构,在几台实体服务器上运行系统软件,并备有一台管理服务器,创建多台虚拟机,同时共享 CPU.内存.网络与存储 ...
- 直播网站云服务器搭建,什么是云服务器,直播平台搭建又该如何选择呢?
一个直播平台搭建的成功离不开云服务器,互联网云时代的到来,为平台搭建提供了便利,很多人都听说过但对云服务器不是很了解,那么现在跟大家介绍一下什么叫做云服务器,我们在直播平台搭建时该如何选择云服务器? ...
- 摄像头 保存到外网服务器_直播平台搭建千万不要忽略流媒体服务器的存在
"数据显示,2018年第四季度,陌陌直播服务营收29.592亿元(约4.304亿美元),与2017年同期的21.69亿元相比增长了36%.陌陌方面表示,直播服务营收的增长,主要原因在于直播服 ...
- 一步一步来:MQTT服务器搭建、MQTT客户端使用
物联网应用如火如荼,本文就物联网应用中最受青睐的协议 MQTT相关测试工具的使用进行简单说明. 希望此文能给需要用到的朋友一些微薄的帮助-- 一.MQTT服务器( emqx )搭建 1. 下载服务器M ...
- 快速搭建个人MQTT服务器(基于EMQX)
文章目录 B站视频 简述 服务器配置 安装 关于8083.8084端口 EMQX基本命令 EMQX配置文件 其他命令 B站视频 4分钟快速搭建个人MQTT服务器(基于EMQX) 简述 相信看到这篇教程 ...
- Ubuntu16.04LTS环境下搭建MQTT服务器以及QT实现MQTT客户端
MQTT服务器搭建 使用EMQX搭建MQTT服务器,EMQX 4.2.14 for Ubuntu 16.04下载 下载zip包,选择安装方式为zip,cpu架构选择x86_64 按照网页的指示进行下载 ...
- MQTT服务器搭建与试用,桌面工具连接MQTT服务器
简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠的网络的进行远程传感器和控制设备通 ...
- EMQX MQTT服务器 Windows部署
EMQX MQTT服务器 Windows部署 MQTT协议 EMQX 平台 EMQX MQTT部署 说明 由于我正在着手的物联网项目需要进行通信,我在各种通信协议中进行比较.蓝牙等通信协议功耗太高,而 ...
- Windows下搭建MQTT服务器
Windows下搭建MQTT服务器 1.MQTT服务器软件筛选 2.MQTT服务器软件mosquitto下载 3.修改mosquitto配置,并启动mosquitto服务 4.利用mosquitto工 ...
最新文章
- 暴风影音去广告链接和后台运行进程
- Linux系统 shell基础(二)
- Basketball Exercise CodeForces - 1195C(动态规划dp)
- 昨天订了一台FSC Lifebook S6220
- java 7.函数-递归_带有谓词的Java中的函数样式-第2部分
- java 通道 双向原理_Java-NIO(四):通道(Channel)的原理与获取
- 阿里P9专家右军:大话软件质量稳定性
- c语言程序100例第4题 参考了参考答案
- OFFICE | WORD VBA 合集
- jcabanillas/yii2-inspinia-asset composert 安装失败
- Uva 816 Abbott's Revenge 紫书165页例题
- Word引用参考文献
- 四叉树(QuadTree)图例、应用、实现
- 阿里巴巴服务器泡进“水里”液冷服务器技术
- python设置excel单元格格式_Python帮你做Excel——格式设置与画图
- <input>:1: UserWarning: The .grad attribute of a Tensor that is not a leaf Tensor is being accessed.
- python 微信公众号发文章_如何使用 Python 爬取微信公众号文章
- LuaBox积木编程开发手册-精编版
- 【分区助手】如何扩大C盘容量?
- 小米4可以刷入linux,给小米4刷上SailfishOS是怎样的体验?附刷机教程