【鸿蒙开发】Windows平台MQTT服务器搭建教程

00. 目录

文章目录

    • 00. 目录
    • 01. MQTT概述
    • 02. MQTT服务器下载
    • 03. MQTT服务器安装
    • 04. MQTT服务器配置
    • 05. MQTT服务器启动
    • 06. 附录

01. MQTT概述

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。
在这里插入图片描述

MQTT协议身份和消息格式

​ 有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。

​ MQTT传输的消息分为:主题(Topic)和负载(payload)两部分。Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload)。payload,负载,也就是指消息的内容。

MQTT协议中的订阅、主题、会话

​ 订阅(Subscription):订阅包含主题筛选器(Topic Filter)和最大服务质量(QoS)。订阅会与一个会话(Session)关联,一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器会话(Session),每个客户端与服务器建立连接后就是一个会话。

​ 主题名(Topic Name):就是连接到一个应用程序消息的一个标签。该标签与服务器的订阅的相匹配,服务器会将消息发送给订阅所匹配标签的每个客户端。

MQTT 协议的特点

​ MQTT 是一种轻量、简单、开放,低开销、低带宽占用的即时通讯协议。使用场景有:机器与机器(M2M)、物联网(IoT)。该协议主要针对嵌入式设备,这些设备一般工作于TCP/IP网络。MQTT会构建底层网络传输,它将建立客户端到服务器的连接,提供两者之间的一个有序的、无损的、基于字节流的双向传输。对传输消息有三种服务质量(QoS):

​ QoS 0:最多一次,这一级别会发生消息丢失或重复,消息发布依赖于底层TCP/IP网络。即:<=1。

​ QoS 1:最少一次(承诺消息将至少传送一次给订阅者),这一级别会确保消息到达,但消息可能会重复。即:>=1。

​ QoS 2:刚好一次(承诺消息仅传送到目的地一次),确保消息只有一次到达。即:=1。

02. MQTT服务器下载

CSDN下载:mosquitto-2.0.21a-install-windows-x64.rar

官方下载:https://mosquitto.org/download/
在这里插入图片描述

03. MQTT服务器安装

3.1安装软件时,以管理员身份进行安装,点击Next
在这里插入图片描述

3.2 选择组件,默认即可,点击Next
在这里插入图片描述

3.3 安装路径默认即可,点击Install
在这里插入图片描述

3.4 安装过程如下所示
在这里插入图片描述

3.5 安装完成,点击Finish
在这里插入图片描述

04. MQTT服务器配置

4.1修改安装路径下的 mosquitto.conf 文件

路径:C:\Program Files\Mosquitto,其中10.136.14.170 是自己电脑的 IP 地址。查看自己电脑IP地址方法:Window+R打开运行窗口,输入cmd进入命令行窗口后输入:ipconfig,IPv4后面的就是你电脑的ip地址了。

在这里插入图片描述

4.2 配置控制允许匿名登录
在这里插入图片描述

4.3 允许 mosquitto 通过防火墙

控制面板–> 系统和安全–>防火墙
在这里插入图片描述

4.4 允许应用或功能通过Windows Defender防火墙

在这里插入图片描述

4.5 允许其它应用
在这里插入图片描述

4.6 单击“浏览”,找到安装路径下的 mosquitto.exe;单击“网络类型”,在弹出的窗口中勾选“专用”和“公用”,单击“确定”;单击“添加”。
在这里插入图片描述

4.7 单击“确定”。
在这里插入图片描述

05. MQTT服务器启动

计算机管理 --> 服务和应用程序 --> 服务,在服务中找到并选中“Mosquitto Broker”,单击“启动此服务服务”即可,该服务默认占用 1883 端口。若启动不成功,则应检查前面修改安装路径下的 mosquitto.conf 文件中自己电脑的 IP 地址是否修改准确。
在这里插入图片描述

06. 附录

官网:https://mosquitto.org

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/30572.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

007-Property在C++中的实现与应用

Property在C中的实现与应用 以下是在C中实现属性(Property)的完整实现方案&#xff0c;结合模板技术和运算符重载实现类型安全的属性访问&#xff0c;支持独立模块化封装&#xff1a; #include <iostream> #include <functional>template<typename HostType, t…

自然语言处理:最大期望值算法

介绍 大家好&#xff0c;博主又来给大家分享知识了&#xff0c;今天给大家分享的内容是自然语言处理中的最大期望值算法。那么什么是最大期望值算法呢&#xff1f; 最大期望值算法&#xff0c;英文简称为EM算法&#xff0c;它的核心思想非常巧妙。它把求解模型参数的过程分成…

javascrip网页设计案例,SuperSlide+bootstrap+html经典组合

概述 JavaScript作为一种强大的脚本语言&#xff0c;在网页设计领域发挥着举足轻重的作用&#xff0c;能够为网页赋予丰富的交互性与动态功能。以下通过具体案例来深入理解其应用。​ 假设要打造一个旅游网站&#xff0c;该网站具备诸多实用功能。在响应式设计方面&#xff0…

C#控制台应用程序学习——3.8

一、语言概述 1、平台相关性 C# 主要运行在.NET 平台上。.NET 提供了一个庞大的类库&#xff0c;C# 程序可以方便地调用这些类库来实现各种功能&#xff0c;如文件操作、数据库访问、网络通信等。 2、语法风格 C# 的语法与 C、C 和 Java 有一定的相似性。例如&#xff0c;它使用…

【A2DP】SBC 编解码器互操作性要求详解

目录 一、SBC编解码器互操作性概述 二、编解码器特定信息元素(Codec Specific Information Elements) 2.1 采样频率(Sampling Frequency) 2.2 声道模式(Channel Mode) 2.3 块长度(Block Length) 2.4 子带数量(Subbands) 2.5 分配方法(Allocation Method) 2…

MySQL创建数据库和表,插入四大名著中的人物

一、登录数据库并创建数据库db_ck 二、创建表t_hero 表属性包括&#xff08;id&#xff0c;name&#xff0c;nickname&#xff0c;age&#xff0c;gender&#xff0c;address&#xff0c;weapon&#xff0c;types&#xff09; mysql> create table t_hero(-> id int,-…

C++修炼之路:初识C++

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 引言 …

Python项目在 Cursor 编辑器中 Conda 环境配置问题

在开发使用 FastApi 框架的 Python 某项目时&#xff0c;我遇到了一个因为 Conda 环境配置没有起作用的问题。 我是用 Cursor 编辑器开发 FastApi 项目的&#xff0c;项目运行在 Conda 环境blog中&#xff0c; 由于使用了 opencc-python-reimplemented&#xff0c;Python 版本…

Redis客户端

1.前言 前面学习的Redis的基本操作和命令都是在redis命令行手动执行的&#xff0c;更多的时候&#xff0c;是使用redis的API来实现定制化的redis客户端操作redis服务器。接下来我们要了解Redis服务端和客户端的通信协议&#xff0c;以及Java语言的Redis客户端使用方法 Redis服…

Git基础之分支

常用指令 git branch 列出本地所有分支 git branch -r 列出所有远程分支 git branch [branch-name] 新建一个分支&#xff0c;但依然停留在当前分支 git checkout -b [branch] 新建一个分支&#xff0c;并切换到该分支 git merge [branch] 合并指定分支当前分支 git branch -d …

Java多线程与高并发专题——什么是阻塞队列?

引入 阻塞队列&#xff08;Blocking Queue&#xff09;是一种线程安全的队列数据结构&#xff0c;它的主要特点是&#xff1a; 线程安全&#xff1a;多个线程可以安全地同时访问队列。阻塞操作&#xff1a;当队列为空时&#xff0c;从队列中获取元素的操作会被阻塞&#xff0…

电路常用常用的定理/定律/计算方法

1、欧姆定理 在恒定温度下&#xff0c;导体中的电流I与导体两端的电压U成正比&#xff0c;与导体的电阻R成反比。 2、基尔霍夫定律 2.1基尔霍夫电流定律&#xff08;KCL&#xff09; 在电路中任何一个节点上&#xff0c;任意时刻&#xff0c;流入节点的电流之和等于流出节点…

unity 让两个物体相遇时候刚体互不影响

解决方案是设定好层级不同&#xff0c;在PlayerSetting中找到物理&#xff0c;有一个图层碰撞矩阵 取消对应 勾选即可 如图

编译Telegram Desktop

目录 一、前言 二、环境准备 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 三、编译 四、总结和学习 一、前言 Telegram 是一款全球广泛使用的即时通讯软件&#xff0c;以其强大的隐私保护、跨平台同步和丰富的功能而闻名。它支持一对一聊天、群组&#xff08;最多20万成员&am…

(十七) Nginx解析:架构设计、负载均衡实战与常见面试问题

什么是Nginx? Nginx 是一款高性能的 HTTP 服务器和反向代理服务器&#xff0c;同时支持 IMAP/POP3/SMTP 协议。其设计以高并发、低资源消耗为核心优势&#xff0c;广泛应用于负载均衡、静态资源服务和反向代理等场景。 一、Nginx 的核心优势 高并发处理能力采用异步非阻塞的…

PCIE接口

PCIE接口 PIC接口介绍PIC总线结构PCI总线特点PCI总线的主要性能PIC的历程 PCIE接口介绍PCIe接口总线位宽PCIE速率GT/s和Gbps区别PCIE带宽计算 PCIE架构PCIe体系结构端到端的差分数据传递PCIe总线的层次结构事务层数据链路层物理层PCIe层级结构及功能框图 PCIe链路初始化PCIe链路…

边缘计算盒子:解决交通拥堵的智能方案

在当今的智能交通系统中&#xff0c;边缘计算盒子&#xff08;Edge Computing Box&#xff09;正逐渐成为不可或缺的核心组件。这种设备通过将计算能力下沉到网络边缘&#xff0c;极大地提升了数据处理的速度和效率&#xff0c;特别适用于实时性要求极高的交通监控场景。本文将…

INFINI Labs 产品更新 | Easysearch 增加异步搜索等新特性

INFINI Labs 产品更新发布&#xff01;此次更新&#xff0c;Easysearch 增加了新的功能和数据类型&#xff0c;包括 wildcard 数据类型、Point in time 搜索 API、异步搜索 API、数值和日期字段的 doc-values 搜索支持&#xff0c;Console 新增了日志查询功能。 INFINI Easyse…

Kotlin从入门到精通:开启高效编程之旅

目录 一、为什么选择 Kotlin 二、Kotlin 基础语法入门​ 2.1 Hello, Kotlin​ 2.2 变量与数据类型​ 2.2.1 可变与不可变变量​ 2.2.2 基本数据类型​ 2.2.3 数组​ 三、Kotlin 流程控制与函数​ 3.1 流程控制语句​ 3.1.1 if 表达式​ 3.1.2 when 表达式​ 3.2 函…

大模型量化技术实践指南:GPTQ、AWQ、BitsandBytes 和 Unsloth

在大模型&#xff08;LLM&#xff09;的时代&#xff0c;我们需要了解量化技术&#xff0c;以便在本地电脑上运行这些模型&#xff0c;因为它们的规模非常庞大。然而&#xff0c;实现量化的方法有很多&#xff0c;这让像我这样的初学者很容易感到困惑。本文介绍了我们必须掌握的…