首页 > 其他分享 >MQTT专题

MQTT专题

时间:2024-07-04 16:08:42浏览次数:16  
标签:订阅 专题 协议 用户 MQTT 抖音 客户端

什么是Mqtt

MQTT协议  全称是(Message Queuing Telemetry Transport),即消息队列遥测传输协议。

是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,并且该协议构建于TCP/IP协议之上,我们知道TCP协议本身就具有高可靠性的特点,因此基于其上的MQTT协议同样也是具有高可靠、低开销的特点,之所以低开销,是以为MQTT协议传输的最小的报文也只有两个字节。

在物联网开发中,MQTT不是唯一的选择,与MQTT互相竞争的协议有XMPP和CoAP协议等。

关于发布和订阅的概念我们拿抖音平台来举个例子,我们每一个用户就都是一个客户端,而抖音就是MQTT协议中的服务器,当我们(用户一)关注某一个视频发布者(用户二)时,这样一个关注的行为就可以理解为订阅;同时用户二也可以关注你,那么这就是相互订阅。当用户二发布作品的时候,这个作品是发布到了抖音平台,也就是我们现在的服务器,这个过程就是消息的发布。

在这里需要注意的是:用户二(客户端)发布的消息并不是直接发布给了用户一,而是发布到了抖音平台(服务器),由于用户一订阅了用户二的消息(相当于点了关注),所以抖音平台(服务器)就会向用户一推送这个消息(注意发布和推送的区别)。这就是MQTT协议订阅&发布的一个简单比喻。

MQTT客户端

具备【最多一次、最少一次、刚好一次】、只发不推送、订阅

 

 

MQTT服务端

具备 广播所有、广播订阅、广播指定ip

 

举例:

两个客户端 同时订阅了【A】主题,其中一个客户端发送的消息,另一个客户端和服务端均可收到此消息

 

标签:订阅,专题,协议,用户,MQTT,抖音,客户端
From: https://www.cnblogs.com/chenze-Index/p/18284047

相关文章

  • JVM专题之G1垃圾收集器上
    JDK8为什么不用CMS做为默认垃圾收集器呢1.CMS单线程或者双线程情况下效率很低2.CMS会并发失败3.CMS可中止的预处理会导致极限5S停顿4.并发失败进入foregroud还会导致进入FullGC,全局MSC整理5.CMS吞吐的设计并不是很优秀G1的目的:GarbageFirst,也就是垃圾优先原则,也就......
  • JVM专题之G1垃圾收集器下
    索引(记录)的源码的工作流程图如下:CSet(CollectionSet回收集合)收集集合(CSet)代表每次GC暂停时回收的一系列目标分区。在任意一次收集暂停中,CSet所有分区都会被释放,内部存活的对象都会被转移到分配的空闲分区中。因此无论是年轻代收集,还是混合收集,工作的机制都是一致的。年轻......
  • 【实际应用-第七篇 物联网 mqtt模拟实现单向通信 】
    文章目录概要发布方(模拟设备)引入pom回调MqttCallback发布的方法订阅方(模拟服务器)引入pom回调MqttCallback订阅的方法测试结果实际应用概要两个springboot项目,一个作为发布方,一个作为订阅方,模拟设备向服务器发送mqtt请求上报消息,示例使用的是......
  • Leetcode秋招冲刺(专题13--15)
    专题13:广度优先搜索题目559:N叉树的最大深度(YES)解题思路:使用广度优先搜索,广度优先搜索的核心就是使用队列queue存储每个根节点,然后再存储孩子节点。给定一个N叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N叉树输入按层序遍历序......
  • 专题五:Spring源码之初始化容器上下文
    上一篇我们通过如下一段基础代码作为切入点,最终找到核心的处理是refresh方法,从今天开始正式进入refresh方法的解读。publicclassMain{ publicstaticvoidmain(String[]args){ ApplicationContextcontext=newClassPathXmlApplicationContext("applicationContext......
  • 平衡树专题Splay
    写在前面:部分来自孙宝(@Steven24)的博客,表示感谢。认识什么是Splay就是BST的一种,整体效率是很高的,均摊的次数是O(logn)级别的。基本操作就是把节点旋转到BST的root,从而改善BST的平衡性,但是很多人会在旋转中转晕建议找个动图看看,或是上B站找个几分钟的视频看看就理解了。烧烤......
  • Leetcode秋招冲刺(专题10--12)
    专题10:动态规划题目509:斐波那契数(NO)解题思路:动态五部曲动态五部曲:这里我们用一个一维数组来保存递归的结果确定dp数组以及下标的含义dp[i]的定义为:第i个数的斐波那契数值是dp[i]确定递推公式这道题已经把递推公式直接给了:状体转移方程dp[i]=dp[i-1]+dp[i-2];dp数......
  • 【K8s】专题六(3):Kubernetes 稳定性之自动扩缩容
    以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!一、基本介绍在Kubernetes中,自动扩缩容是一种动态调整集群资源,以灵活应对应用程序资源需求变化的机制。自动扩缩容可以分为两个层面:Node层面:根据业务规模......
  • 专题二:Spring源码编译
    目录下载源码配置Gradle配置环境变量配置setting文件配置Spring源码配置文件调整问题解决完整配置gradel.propertiesbuild.gradlesettiings.gradel在专题一:Spring生态初探中我们从整体模块对Spring有个整体的印象,现在正式从最基础的Spring模块进一步学习,第一步......
  • 【算法专题--栈】用队列实现栈 -- 高频面试题(图文详解,小白一看就懂!!)
    目录一、前言二、题目描述三、解题方法⭐两个队列实现栈......