手把手教你在 Windows 环境中搭建 MQTT 服务器

简介: 手把手教你在 Windows 环境中搭建 MQTT 服务器

前言

今天要对接一家硬件商的设备数据,对方使用的 MQTT 协议点对点透传,所以又赶紧搭建 MQTT 服务器,写 .NET 程序接收数据等等,今天先分享一下如何搭建 MQTT 服务器。

MQTT 协议是什么?

MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式的通信协议,专门设计用于在低带宽、不稳定的网络环境下进行物联网设备之间的通信。具有以下特点(优势):

  1. 轻量级:MQTT 协议设计简单,通信开销小,适合在资源受限的设备上使用,如传感器、嵌入式设备等。
  2. 发布/订阅模式:MQTT 使用发布/订阅模式,消息的发送者称为发布者(Publisher),消息的接收者称为订阅者(Subscriber),发布者和订阅者之间通过消息代理(Broker)进行通信。
  3. 可靠性:MQTT 协议支持消息的 QoS(Quality of Service)等级,包括至多一次、至少一次和仅一次,可以根据需求选择适当的 QoS 级别来确保消息的可靠传输。
  4. 连接保持:MQTT 客户端可以保持与消息代理的长连接,即使在网络不稳定或断开的情况下,客户端也可以重新连接并恢复通信。
  5. 适应性:MQTT 可以在 TCP/IP、TLS/SSL、WebSocket 等多种网络协议上进行通信,便于在不同的网络环境中使用。

总而言之,MQTT 协议由于其轻量级、灵活性和可靠性,被广泛应用于物联网设备、传感器网络、移动设备等场景,是物联网通信的重要协议之一。

安装步骤

  1. 下载
  1. 安装
  • 无需安装,解压 emqx-5.3.0-windows-amd64.zip 后即可使用
  1. 运行
  1. 假设 emqx-5.3.0-windows-amd64.zip 解压到以下目录:
  • C:\Tools\MQTT\emqx-5.3.0-windows-amd64
  1. 打开 CMD 窗口
  2. 运行以下命令,以下结果说明服务运行正常:
Microsoft Windows [版本 10.0.19045.3570]
(c) Microsoft Corporation。保留所有权利。
C:\Tools\MQTT\emqx-5.3.0-windows-amd64\bin>emqx start
EMQX_NODE__DB_ROLE [node.role]: core
EMQX_NODE__DB_BACKEND [node.db_backend]: mnesia
C:\Tools\MQTT\emqx-5.3.0-windows-amd64>cd bin
C:\Tools\MQTT\emqx-5.3.0-windows-amd64\bin>emqx_ctl status
Node 'emqx@127.0.0.1' 5.3.0 is started

4.访问 Web 端控制台:

采坑集

解压 emqx-5.3.0-windows-amd64.zip 后,第一次运行报错:

此时不应有 SET

解决:

  • 需要安装 Erlang(otp_win64_25.2.3.exe),因为 emqx 是基于 erlang 语言开发的
  • 安装后关掉旧的 cmd 窗口,并打开新的 cmd 窗口,重新运行 start 命令即可
  • otp_win64_25.2.3.exe 下载地址: https://www.erlang.org/downloads

扩展

  1. emqx start : 后台启动 EMQX Broker;
  2. emqx stop :关闭 EMQX Broker;
  3. emqx restart :重启 EMQX Broker
  4. emqx console 使用控制台启动 EMQX Broker;
  5. emqx foreground : 使用控制台启动 EMQX Broker,与 emqx console 不同,emqx foreground 不支持输入 Erlang 命令
  6. emqx ping :Ping EMQX Broker, 检查当前节点是否通信正常;
  7. emqx check_conf: 检查配置文件格式是否正常,如果你修改了配置文件,推荐在启动前先执行此命令,来检查配置文件的格式是否符合要求。
  8. emqx_ctl status:查询 EMQX 运行状态
  9. emqx_ctl broker:查询服务器基本信息,启动时间,统计数据与性能数据
  10. emqx_ctl broker stats:查询服务器客户端连接 (Connections)、主题 (Topics)、订阅 (Subscriptions)、路由 (Routes) 统计
  11. emqx_ctl clients list:列出所有客户端连接


相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
15天前
|
存储 UED Windows
Windows服务器上大量文件迁移方案
Windows服务器上大量文件迁移方案
39 1
|
20天前
|
NoSQL Redis Windows
windows服务器重装系统之后,Redis服务如何恢复?
windows服务器重装系统之后,Redis服务如何恢复?
48 6
|
15小时前
|
应用服务中间件 PHP Apache
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
|
20天前
|
Java 应用服务中间件 Windows
windows服务器重装系统之后,Tomcat服务如何恢复?
windows服务器重装系统之后,Tomcat服务如何恢复?
38 10
|
20天前
|
消息中间件 Java Kafka
windows服务器重装系统之后,Kafka服务如何恢复?
windows服务器重装系统之后,Kafka服务如何恢复?
19 8
|
1月前
|
SQL JavaScript 数据库
sqlite在Windows环境下安装、使用、node.js连接
sqlite在Windows环境下安装、使用、node.js连接
|
22天前
|
监控 Windows
Windows服务器的服务如何实现自动启动?
Windows服务器的服务如何实现自动启动?
37 1
|
13小时前
|
应用服务中间件 Shell PHP
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
|
2天前
|
Windows
Windows系统环境编写DOS批处理文件
Windows系统环境编写DOS批处理文件
|
15天前
|
存储 Unix 数据挖掘
服务器数据恢复—SAN环境下LUN Mapping出错导致文件系统共享冲突的数据恢复案例
服务器数据恢复环境: SAN环境下一台存储设备中有一组由6块硬盘组建的RAID6磁盘阵列,划分若干LUN,MAP到不同业务的SOLARIS操作系统服务器上。 服务器故障: 用户新增了一台服务器,将存储中的某个LUN映射到新增加的这台服务器上。这个映射的LUN其实之前已经MAP到其他SOLARIS操作系统的服务器上了。由于没有及时发现问题,新增加的这台服务器已经对此LUN做了初始化操作,磁盘报错,重启后发现卷无法挂载。