-
手把手教你在 Windows 环境中搭建 MQTT 服务器
前言
前些天要对接一家硬件商的设备数据,对方使用的 MQTT 协议点对点透传,所以又赶紧搭建 MQTT 服务器,写 .NET 程序接收数据等等,今天分享一下如何搭建 MQTT 服务器。
MQTT 协议是什么?
MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式的通信协议,专门设计用于在低带宽、不稳定的网络环境下进行物联网设备之间的通信。具有以下特点(优势):
-
轻量级:MQTT 协议设计简单,通信开销小,适合在资源受限的设备上使用,如传感器、嵌入式设备等。
-
发布/订阅模式:MQTT 使用发布/订阅模式,消息的发送者称为发布者(Publisher),消息的接收者称为订阅者(Subscriber),发布者和订阅者之间通过消息代理(Broker)进行通信。
-
可靠性:MQTT 协议支持消息的 QoS(Quality of Service)等级,包括至多一次、至少一次和仅一次,可以根据需求选择适当的 QoS 级别来确保消息的可靠传输。
-
连接保持:MQTT 客户端可以保持与消息代理的长连接,即使在网络不稳定或断开的情况下,客户端也可以重新连接并恢复通信。
-
适应性:MQTT 可以在 TCP/IP、TLS/SSL、WebSocket 等多种网络协议上进行通信,便于在不同的网络环境中使用。
总而言之,MQTT 协议由于其轻量级、灵活性和可靠性,被广泛应用于物联网设备、传感器网络、移动设备等场景,是物联网通信的重要协议之一。
安装步骤
-
下载
- URL: https://www.emqx.io/zh/downloads?os=Windows
- History URL: https://www.emqx.com/zh/downloads/broker
- 当前下载的是 emqx-5.3.0-windows-amd64.zip
-
安装
- 无需安装,解压 emqx-5.3.0-windows-amd64.zip 后即可使用
-
运行
-
假设 emqx-5.3.0-windows-amd64.zip 解压到以下目录:
- C:\Tools\MQTT\emqx-5.3.0-windows-amd64
- 打开 CMD 窗口
-
运行以下命令,以下结果说明服务运行正常:
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
-
访问 Web 端控制台:
- http://127.0.0.1:18083/#/dashboard/overview(默认登录:admin/public)
- 首次登录后最好修改密码
-
假设 emqx-5.3.0-windows-amd64.zip 解压到以下目录:
采坑集
解压 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
扩展
-
emqx start
: 后台启动 EMQX Broker; -
emqx stop
:关闭 EMQX Broker; -
emqx restart
:重启 EMQX Broker -
emqx console
使用控制台启动 EMQX Broker; -
emqx foreground
: 使用控制台启动 EMQX Broker,与emqx console
不同,emqx foreground
不支持输入 Erlang 命令 -
emqx ping
:Ping EMQX Broker, 检查当前节点是否通信正常; -
emqx check_conf
: 检查配置文件格式是否正常,如果你修改了配置文件,推荐在启动前先执行此命令,来检查配置文件的格式是否符合要求。 -
emqx_ctl status
:查询 EMQX 运行状态 -
emqx_ctl broker
:查询服务器基本信息,启动时间,统计数据与性能数据 -
emqx_ctl broker stats
:查询服务器客户端连接 (Connections)、主题 (Topics)、订阅 (Subscriptions)、路由 (Routes) 统计 -
emqx_ctl clients list
:列出所有客户端连接
出处:https://www.cnblogs.com/JackyGz/p/17952920
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式