前言

前些天要对接一家硬件商的设备数据,对方使用的 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:列出所有客户端连接

手把手教你在 Windows 环境中搭建 MQTT 服务器的更多相关文章

  1. 如何在windows环境中搭建apache+subversion(ZT)

    我一直有一个想法就是在本机上象scm一样的搭建一个subversion服务器,然后每天写完代码的时候提交一下,这种感觉好好哦,之前我在windows环境中搭建过纯subversion的服务器兴奋过一阵 ...

  2. freeSSHD在windows环境下搭建SFTP服务器

    freeSSHD在windows环境下搭建SFTP服务器 0 建议现在windows环境下安装cygwin,否则在windows环境下cmd模式使用不了sftp去连接,可以利用win scp去测试连接 ...

  3. Windows环境下搭建MosQuitto服务器

    Windows环境下搭建MosQuitto服务器 2018年04月16日 22:00:01 wistronpj 阅读数:1185  摘自:https://blog.csdn.net/pjlxm/art ...

  4. 手把手教你在Windows环境下升级R

    在Windows环境下,我们可以使用installr包自动将R升级到最新版本.并且可以安装软件.下面主要演示如何在Windows环境下升级R,并将旧版本安装的R包复制到更新版本的R. 1.加载inst ...

  5. Windows环境下搭建FTP服务器

    Windows主机建立FTP服务器 第一步:启用对应的Windows功能 控制面板 选择启用或关闭Windows功能 勾选FTP服务器和Web管理工具 可能出现的问题 系统提示无法安装IIS和FTP服 ...

  6. windows系统中搭建Jenkins服务器

    1       须知 100.126.36.232等Jenkins服务器是通过设置代理访问外网,管理Jenkins和插件升级站点的,本地安装受黄区网络限制需要特殊配置,且有些插件无法下载. 前提条件: ...

  7. Windows环境下搭建SVN服务器

    使用 VisualSVN Server来实现主要的 SVN功能则要比使用原始的 SVN和Apache相配合来实现源代码的 SVN管理简单的多,下面就看看详细的说明. VisualSVN Server的 ...

  8. 手把手教你 通过 NuGet.Server 包 搭建nuget服务器,并使用桌面工具上传 nuget 包,免命令行

    新建web项目 工具:VS2013 版本:.Net Framework 4.6,低版本也行,不过要找到对应版本的Nuget.Server 装了NuGet客户端(百度如何安装) WebForm或MVC都 ...

  9. Windows环境下部署Tomcat服务器图文教程

    Tomcat是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选. 本文将详细介绍在Windows环境下 ...

  10. 史上最全最详细的环境搭建教程,行百里者手把手教你在windows下搭建Anaconda+pycharm+库文件(TensorFlow,numpy)环境搭建

    我是在搭建TensorFlow开发环境的道路上走了很多弯路 掉了很多头发,为了让广大同学们不在受苦受累 下面我将手把手教你学习如特快速搭建python环境 快速导入numpy,PIL,pillow,等 ...

随机推荐

  1. Vue源码学习(十五):diff算法(二)交叉比对(双指针)

    好家伙, 本节来解决我们上一章留下来的问题, 新旧节点同时有儿子的情况本章继续解决 1.要做什么? 本章将解决, 1.在相同tag下子元素的替换问题 2.使用双指针进行元素替换, 实现效果如下:   ...

  2. mediakit 源码 轻微微 学习总结

    mediakit 源码 轻微微 学习总结 概要 项目地址:https://github.com/ZLMediaKit/ZLMediaKit 此项目我们把他做为一个流媒体服务器,我们会有srt和rtsp ...

  3. 大白话说Python+Flask入门(一)

    写在前面 技术这东西就得用,不用就会忘,之前写博客感觉就是给自己记笔记用,还有大部分,估计睡在语雀里都落灰了,哈哈! 在Python领域,我觉得我还是算个小白吧,会写讲不明白,所以我决定想做一件事,先 ...

  4. 为什么 Django 后台管理系统那么“丑”?

    哈喽大家好,我是咸鱼 相信使用过 Django 的小伙伴都知道 Django 有一个默认的后台管理系统--Django Admin 它的 UI 很多年都没有发生过变化,现在看来显得有些"过时 ...

  5. 写代码不用"if"行不行,曾经的反 if 运动

    如果在IT行业的时间够长的话,可能还记得大约10几年前,设计模式风靡一时的时候,有过一段反 "if" 的运动. 所谓的反"if"运动,其实是夸大了"i ...

  6. 【luogu题解】P9749 [CSP-J 2023] 公路

    \(Meaning\) \(Solution\) 这道题我来讲一个不一样的解法:\(dp\) 在写 \(dp\) 之前,我们需要明确以下几个东西:状态的表示,状态转移方程,边界条件和答案的表示. 状态 ...

  7. 洛谷4055 [JSOI2009]游戏(二分图博弈)

    例题:在N×M的迷宫中有一个棋子,小 AA 首先任意选择棋子放置的位置.然后,小 YY 和小 AA 轮流将棋子移动到相邻的格子里.游戏的规则规定,在一次游戏中,同一个格子不能进入两次,且不能将棋子移动 ...

  8. CortexM外设:NVIC 嵌套向量中断控制器

    优先级分组Priority Group 使能Enabled 抢占优先级Preemption Priority 子优先级Sub Priority 外部中断线 EXTI Line 定时器中断 TIM1 u ...

  9. 开发环境搭建:CubeMX、Keil MDK-ARM、仿真器驱动程序

    来源:成电<微机原理与嵌入式系统>漆强 第三章 STM32微控制器开发环境的搭建 一.STM32 CubeMX的安装 1.STM32 CubeMX的下载和安装 先安装java环境安装 下载 ...

  10. 容器网络Cilium:DualStack双栈特性分析

    本文分享自华为云社区<容器网络Cilium入门系列之DualStack双栈特性分析>,作者: 可以交个朋友. 一 . 关于IPV6/IPV4 双栈 目前很多公司开始将自己的业务由ipv4切 ...