物联网智能家居实战-提高班第5节(MQTT架构)

2023-11-02 22:41

本文主要是介绍物联网智能家居实战-提高班第5节(MQTT架构),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:以下内容基于 百问网 黄老师的 7天实战训练的个人总结

本节为提高班第5节,对MQTT架构进行讲解:

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。下图为通常查询到的关于MQTT的框图,初学者一般不容易理解。

100问网老师便于学习理解,将架构图示修改为下图样式:

中央电视台,相关于服务器(broker) ,有以下作用:

接受来自客户的网络连接,如将记者和观众连接到电视台

接收客户发布的应用信息,如接受记者发布的信息

处理来自客户端的订阅和退订,如处理观众的请求

向订阅的客户转发消息,如给观众转发记者报道的消息。

记者和观众都是客户端,有以下作用:

记者发布信息(pubish),

观众订阅消息(subscribe)

退订或删除消息

断开与服务器连接

架构搭建准备工作:

下载并安装《MQTTX-Setup-1.7.2-x64》《mosquitto-2.0.14-install-windows-x64》

找到mosquitto的安装目录,按住“SHIFT”键点鼠标右键,打开“powershell”,这样打开的界面就直接在mosquitto路径下,就可以直接做下个步骤操作了。我用的WIN7,右键没有“powershell”,请参考如下操作方式,实测有用。

win7 右键增加打开 powershell选项_微电子学与固体电子学-CSDN博客_win7右键打开powershell

 用CMD命令打开效果一样(有些系统用“powershell”建立服务器会失败,比如我的……)

 如下图,进入mosquitto安装目录输入mosquitto -v建立服务器,端口号是1883

打开MQTTX软件,新建立连接,名词随便写,服务器地址127.0.0.1(本机地址,意思是数据发给自己),端口号1883

 添加订阅(Topic),名称任意

当未指定订阅号时,信息有发送但没有接收。当使用订阅号时,发送数据后能接收。

新开一个CMD,相当于记者给电视台发信息,使用mosquitto_pub.exe  -h(IP地址) -p(端口号)       -t(订阅号)-m(内容)

点发送后在MQTTX上收到相应的信息。 

 当建立多个用户(3个),其中前2个订阅了“tiyupindao”,最后一个不订阅,当记者按订阅号“tiyupindao”发送信息时,订阅的观众收到了信息,未订阅的未收到。

 

本篇总结完成,感兴趣的同学可以尝试自己搭建,内容学习及部分配图源于百问网相关教程

 

 

 

这篇关于物联网智能家居实战-提高班第5节(MQTT架构)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/333801

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

springboot实战学习(1)(开发模式与环境)

目录 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 (3)前端 二、开发模式 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 Validation:做参数校验Mybatis:做数据库的操作Redis:做缓存Junit:单元测试项目部署:springboot项目部署相关的知识 (3)前端 Vite:Vue项目的脚手架Router:路由Pina:状态管理Eleme

基于人工智能的智能家居语音控制系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 随着物联网(IoT)和人工智能技术的发展,智能家居语音控制系统已经成为现代家庭的一部分。通过语音控制设备,用户可以轻松实现对灯光、空调、门锁等家电的控制,提升生活的便捷性和舒适性。本文将介绍如何构建一个基于人工智能的智能家居语音控制系统,包括环境准备