MQTT--EMQX入门+MQTTX使用


1、什么是EMQX?

首先你得有MQTT的知识,不认识MQTT的小伙伴可以先看看这篇:MQTT–快速入门

1.1 EMQX介绍

MQTT属于是物联网的通信协议,在MQTT协议中有两大角色:客户端(发布者/订阅者),服务端(Mqtt broker);针对客户端和服务端需要有遵循该协议的的具体实现,EMQ/EMQ X就是MQTT Broker的一种实现。
EMQ X 基于 Erlang/OTP 平台开发的MQTT 消息服务器,是开源社区中最流行的 MQTT 消息服务器。 EMQ X 是开源百万级分布式 MQTT 消息服务器(MQTT Messaging Broker),用于支持各种接入标准 MQTT 协议的设备,实现从设备端到服务器端的消息传递,以及从服务器端到设备端的设备控制消息转发。从而实现物联网设备的数据采集,和对设备的操作和控制。

1.2 EMQX特点

  • 易于安装和使用;
  • 灵活的扩展性,支持企业的一些定制场景;
  • 中国本地的技术支持服务,通过微信、QQ等线上渠道快速响应客户需求;
  • 基于 Apache 2.0 协议许可,完全开源。EMQ X 的代码都放在 Github 中,用户可以查看所有源代码。
  • EMQ X 3.0 支持 MQTT 5.0 协议,是开源社区中第一个支持 5.0协议规范的消息服务器,并且完全兼容 MQTT V3.1 和 V3.1.1 协议。除了 MQTT 协议之外,EMQ X 还支持别的一些物联网协议
  • 单机支持百万连接,集群支持千万级连接;毫秒级消息转发。EMQ X 中应用了多种技术以实现上述功 能,
  • 利用 Erlang/OTP 平台的软实时、高并发和容错(电信领域久经考验的语言)
  • 全异步架构
  • 连接、会话、路由、集群的分层设计
  • 消息平面和控制平面的分离等
  • 扩展模块和插件,EMQ X 提供了灵活的扩展机制,可以实现私有协议、认证鉴权、数据持久化、桥接转 发和管理控制台等的扩展
  • 桥接:EMQ X 可以跟别的消息系统进行对接,比如 EMQ X Enterprise 版本中可以支持将消息转发到 Kafka、RabbitMQ 或者别的 EMQ 节点
  • 共享订阅:共享订阅支持通过负载均衡的方式在多个订阅者之间来分发 MQTT 消息。比如针对物联网等 数据采集场景,会有比较多的设备在发送数据,通过共享订阅的方式可以在订阅端设置多个订阅者来实现这 几个订阅者之间的工作负载均衡

1.3 与物联网之间的关系以及主要的产品

典型的物联网平台包括设备硬件、数据采集、数据存储、分析、Web / 移动应用等。EMQ X 位于数据采集这 一层,分别与硬件和数据存储、分析进行交互,是物联网平台的核心:前端的硬件通过 MQTT 协议与位于数据采 集层的 EMQ X 交互,通过 EMQ X 将数据采集后,通过 EMQ X 提供的数据接口,将数据保存到后台的持久化平台 中(各种关系型数据库和 NOSQL 数据库),或者流式数据处理框架等,上层应用通过这些数据分析后得到的结果 呈现给最终用户。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9c451ee23d3a4ca6afc77f1086048e16.pn

主要的产品

EMQ X 公司主要提供 三个产品,可在官网首页产品导航查看每一种产品;主要体现在支持的连接数量、产品 功能和商业服务等方面的区别:(功能递增的)
● EMQ X Broker:EMQ X 开源版,完整支持 MQTT V3.1.1/V5.0 协议规范,完整支持 TCP、TLS、 WebSocket 连接,支持百万级连接和分布式集群架构;LDAP, MySQL, Redis, MongoDB 等扩展插件集成,支 持插件模式扩展服务器功能;支持跨 Linux、Windows、macOS 平台安装,支持公有云、私有云、K8S/容器 部署
● EMQ X Enterprise:EMQ X 企业版,在开源版基础上,支持物联网主流协议 MQTT、MQTT-SN、 CoAP/LwM2M、HTTP、WebSocket 一站式设备接入;JT-808/GBT-32960 等行业协议支持,基于 TCP/UDP 私有协议的旧网设备接入兼容,多重安全机制与认证鉴权;高并发软实时消息路由;强大灵活的内置规则引 擎;企业服务与应用集成;多种数据库持久化支持;消息变换桥接转发 Kafka;管理监控中心
● EMQ X Platform:EMQ X 平台版,EMQ X Platform 是面向千万级超大型 IoT 网络和应用,全球首选电 信级物联网终端接入解决方案。千万级大容量;多物联网协议;电信级高可靠;卓越 5G 网络支持;跨云跨 IDC 部署;兼容历史系统;完善的咨询服务(从咨询到运维)
在这里插入图片描述

2、安装启动

详细可以看官网的安装步骤:EMQX文档 里面有各个系统的安装步骤,很全面

我这里安装的是EMQ X 开源版
安装成功后输入命令sudo systemctl start emqx启动
在这里插入图片描述
访问http://ip:18083/
初始账号密码:admin public
在这里插入图片描述
出现这个界面就是成功了,你们刚开始登录没有客户端连接(后面会和大家讲如何连接到EMQX),连接数都为0的

2.1 基本命令

如果采用的是非docker部署的,那么EMQ X提供了一些常用的命令行工具,方便用户对EMQ X进行启动、关 闭、进入控制台等操作。

emqx start 后台启动 EMQ X Broker 
emqx stop 关闭 EMQ X Broker 
emqx restart 重启 EMQ X Broker 
emqx console 使用控制台启动 EMQ X Broker 
emqx foreground 使用控制台启动 EMQ X Broker,与 emqx console 不同, emqx foreground 不支持输入 Erlang 命令 
emqx ping Ping EMQ X Broke  

2.2 目录结构

版本不一致,可能不同
在这里插入图片描述
在这里插入图片描述

3、MQTTX客户端

MQTTX就是一个基于MQTT收发消息的客户端 MQTTX官网下载
在官网下载系统需要的版本

3.1 连接配置

名称随意
ClientID随意
服务器地址前缀要为mqtt://
服务器地址为你的ip地址
EMQX连接端口默认是1883
用户名和密码是你客户端登录的用户名密码,和登录EMQX后台的那个不是一个概念,这里可以随便填或者不填
在这里插入图片描述
点击连接后,你在EMQX后台就可以看见连接数为1了
然后可以添加订阅(相当于添加主题),用来监听消息
在这里插入图片描述
然后发送消息
在这里插入图片描述
要查看test主题收到的消息,要点击那个test
可以看见右边是我发送的消息,左边是我接收的消息
在这里插入图片描述
并且EMQX后台可以看见主题数和订阅数
在这里插入图片描述


PS:

感谢您的阅读!如果您觉得本篇文章对您有所帮助,请给予博主一个赞喔~

<think>好的,我需要回答用户关于EMQXMQTT协议中的使用教程的问题。首先,用户提供的引用内容涉及安装、部署、常用命令、连接参数、主题定义等。我需要整理这些信息,并按照用户的格式要求来组织回答。 根据系统级指令,回答需要使用中文,结构清晰,分步骤说明,并生成相关问题。同时,引用的内容需要添加引用标识。用户还要求生成相关问题,放在最后。另外,数学公式需要使用正确的LaTeX格式,但当前问题主要涉及技术文档,可能用不到太多数学公式,不过如果有的话需要正确应用。 首先,我需要确认用户的需求:他们想了解如何使用EMQX作为MQTT服务器,包括安装、配置、连接、测试等步骤。引用中提到了安装EMQX,常用命令,连接参数如host、端口、用户名密码,以及客户端工具的使用,比如mqttbox和MQTTX,还有主题的定义。这些信息需要整合成一个连贯的教程。 接下来,我需要按照逻辑顺序组织内容:安装部署、启动服务、配置参数、客户端连接测试、主题管理,可能还包括性能优化或安全配置。每个部分需要引用对应的引用内容,比如引用1提到安装和常用命令,引用2和3涉及连接参数,引用4关于访问地址和管理端口,引用5说明主题定义。 另外,用户示例中的快速排序部分有代码块,所以在回答中如果有配置示例或代码,也需要用代码块格式。例如,展示连接参数时,可以引用用户提供的JavaScript代码片段,但需要确认是否属于用户提供的引用内容。根据引用2,用户有一个数据对象包含host和mqttOptions,这可能是一个前端配置,但需要正确引用。 还需要注意引用标识的位置,每个引用来源在回答中的对应部分末尾添加,如[^1]、[^2]等。例如,在说明安装步骤时,引用1提供了安装说明,因此在该部分末尾添加[^1]。 然后,生成相关问题需要考虑用户可能进一步的问题,比如性能优化、安全配置、集群部署等,基于现有内容合理提出。 最后,检查格式是否符合要求:行内公式用$...$,独立公式用$$...$$,但当前内容可能较少涉及数学公式,所以可能不需要。但需要确保所有LaTeX语法正确,如果有的话。 现在,整理回答的结构: 1. EMQX安装与部署 - 安装步骤,引用1 - 常用命令,引用1和4(启动和管理端口) 2. 配置MQTT连接参数 - host和端口,引用3和4 - 客户端参数如用户名密码,引用2 3. 客户端工具使用 - mqttbox和MQTTX,引用1 4. 主题定义与管理 - 主题结构,引用5 5. 高级配置或安全设置(可能根据引用内容有限,但可以提到) 然后,生成相关问题,如安装问题、优化方法、安全配置、集群搭建等。 需要确保每个引用正确对应,例如,引用3提到MQTT地址格式,引用2提到连接参数,引用5提到主题定义。 过程中需要避免使用Markdown格式,但用户示例中使用了代码块和引用标识,所以按照用户的示例结构来组织。同时,回答需要分步骤,结构清晰,帮助用户逐步解决问题。 可能还需要补充一些步骤,比如如何登录EMQX管理控制台(引用4中的18083端口),以及通过客户端进行订阅发布的示例。 最后,检查是否所有引用都被正确引用,没有遗漏,并且问题相关且合理。</think>### EMQXMQTT协议中的使用教程 #### 1. **安装与部署EMQX** - **安装步骤** EMQX支持多种安装方式,包括二进制包、Docker镜像等。例如,在Linux系统中,可通过以下命令安装: ```bash # 下载并安装EMQX wget https://www.emqx.com/zh/downloads/emqx/5.0.20/emqx-5.0.20-ubuntu20.04-amd64.deb sudo dpkg -i emqx-5.0.20-ubuntu20.04-amd64.deb ``` 安装完成后,使用命令启动服务: ```bash emqx start ``` 更多详细步骤可参考官方文档。 - **常用命令** - 启动服务:`emqx start` - 停止服务:`emqx stop` - 查看状态:`emqx status` - 重启服务:`emqx restart`[^1][^4]。 --- #### 2. **配置MQTT连接参数** - **连接地址与端口** EMQX默认的MQTT协议端口为`1883`,对应的连接地址格式为`mqtt://host:port`。例如: ```plaintext mqtt://broker.emqx.io:1883 # 公共测试服务器[^3] ``` 若本地部署,`host`可设置为服务器IP或域名,例如`mqtt://192.168.1.100:1883`。 - **客户端参数配置** 客户端连接时需指定`username`、`password`等参数。例如,使用JavaScript的配置示例: ```javascript { host: "wx.emqxcloud.cn", mqttOptions: { username: "dashboard1", password: "123456", reconnectPeriod: 1000, // 自动重连间隔(毫秒) connectTimeout: 30000 // 连接超时时间(毫秒) } } ``` 详细参数可参考[MQTT.js文档](https://github.com/mqttjs/MQTT.js)。 --- #### 3. **客户端工具测试** - **MQTTBox/MQTTX工具** 使用工具(如MQTTX)连接EMQX服务器,进行消息的订阅与发布测试: 1. 输入服务器地址和端口(如`mqtt://broker.emqx.io:1883`)。 2. 填写用户名和密码(若启用认证)。 3. 订阅主题(如`sub/device01/data`)并发布消息到目标主题(如`pub/device01/command`)[^5]。 - **主题定义规则** EMQX支持通配符(`+`、`#`)匹配多级主题。例如: ```c #define MQTT_SUBTOPIC "sub/%s/%s" // 订阅动态主题 #define MQTT_PUBTOPIC "pub/%s/%s" // 发布动态主题 ``` --- #### 4. **管理控制台访问** 通过浏览器访问EMQX管理界面(默认端口`18083`),输入`http://<服务器IP>:18083`,使用默认账号`admin`和密码`public`登录。可在此界面监控连接状态、查看主题流量或配置访问控制规则。 --- #### 5. **安全与扩展配置** - **启用TLS加密** 修改EMQX配置文件`emqx.conf`,配置SSL证书和端口(如`8883`),提升通信安全性。 - **集群部署** 通过修改节点名称和集群策略,实现多节点高可用部署,适用于大规模物联网场景。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值