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

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

image

前言

前些天要对接一家硬件商的设备数据,对方使用的 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. 下载
  2. 安装
    • 无需安装,解压 emqx-5.3.0-windows-amd64.zip 后即可使用
  3. 运行
    1. 假设 emqx-5.3.0-windows-amd64.zip 解压到以下目录:
      • C:\Tools\MQTT\emqx-5.3.0-windows-amd64
    2. 打开 CMD 窗口
    3. 运行以下命令,以下结果说明服务运行正常:
      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:列出所有客户端连接
评论