如果你耐着性子从第一节看到这里,那么恭喜你,你现在已经准备好构建一个属于自己的物联网平台了。

我们现在来总结一下在本课程中学到的东西。

从 Client-Broker-Client 到 Client-Server

在本课程中,我们通过抽象,将 MQTT 的 Client-Broker-Client 模式转换成了 Client-Server 模式。对于设备而言,它通过调用 DeviceSDK,不用再去关心底层的数据传输细节,只用关心向服务器发送数据和处理服务器下发的数据。对于业务系统来说,它通过调用 IotHub 提供的 API,不需要再建立到 Broker 的连接,只关心处理设备上报的数据和下发数据到设备。至于数据是用 MQTT 还是 CoAP,MQTT Broker在哪里,对 Client-Server 模式都是透明的。我们主要是通过以下两点完成这个抽象的。

主题规划

在 IotHub 中我们定义了一系列的主题,我们把主题当作描述消息内容的元数据字段在使用。这是很关键的一点,如果说我们把消息的描述放入 Payload 的话,那 IotHub 的业务逻辑就和设备应用代码的逻辑耦合到一起了。要记住的是,在 MQTT 或者任何类似队列的系统里,用 Payload 来判断消息的类型,都是 anti-pattern。 在这样的系统里面,应该是用主题名或者队列名来进行消息类型的判断,同一种类型的消息应该使用同样的主题名或者队列名。

IotHub 利用了 EMQ X 的 Hook 机制,在处理上行数据时,设备 Publish 的 MQTT 消息中的主题实际上是没有任何真实的 MQTT Client 在订阅的,EMQ X Broker 不再通过主题名将消息路由给其他的 Client

课程总结:我们学到了什么?相关推荐

  1. python程序设计的基本步骤_Python程序设计课程教与学(54、72、80学时教学大纲)...

    原标题:Python程序设计课程教与学(54.72.80学时教学大纲) <算法与程序设计>课程教学大纲 Programming and Algorithm Fundamentals (Py ...

  2. Python高级全栈开发实战 老男孩课程S16+路飞学城项目+女神串讲 Python全栈直通车课程

    python高级全栈开发实战 老男孩课程S16+路飞学城项目+女神串讲 Python全栈直通车课程 Python高级全栈开发实战老男孩课程,是可以帮助同学们从零基础开始到项目开发实战的全栈课程,内容非 ...

  3. 计算机专业哪些课程好难,计算机专业课程有哪些 学计算机难不难

    每年都有很多人选择学计算机专业,那么,计算机专业课程有哪些呢?学计算机难不难呢?下面小编整理了一些相关信息,供大家参考! 计算机学什么课程 1.计算机应用基础 2.计算机网络 3.计算机组成原理 4. ...

  4. 视频教程-Excel数据透视表实战视频课程【你学得会】-Office/WPS

    Excel数据透视表实战视频课程[你学得会] Office中国金牌讲师,从事企业信息系统解决方案专业认识,Office二次开发讲师.拥有多年C#,VB和VBA开发经验和教学经验,擅长讲授Access. ...

  5. 计算机专业课好学吗,计算机专业课程有哪些 学计算机难不难

    每年都有很多人选择学计算机专业,那么,计算机专业课程有哪些呢?学计算机难不难呢?下面小编整理了一些相关信息,供大家参考! 计算机学什么课程 1.计算机应用基础 2.计算机网络 3.计算机组成原理 4. ...

  6. 计算机图形及分类的相关知识,“计算机图形学”课程教与学

    摘 要:本文针对作者几年来在"计算机图形学"课程教学过程中实际遇到的问题,从教师如何教授知识和学生如何学习知识两个方面进行深入分析和研究,提出了改进课堂教学.实验教学以及学生学习的 ...

  7. 乐高机器人课程几岁学编程

    乐高机器人课程几岁学编程?孩子的学习一直都是家长们非常关心和重视的一件事情.很多的家长在培养孩子的学习的时候,也可以说是十分的认真耐心的.会给孩子选择一些有利于孩子的学习的课程.就拿现在很多的家长想要 ...

  8. 大学物理质点动力学思维导图_非物理专业大学物理课程教与学

    [摘要]地方高等院校非物理专业大学物理课程教学中普遍存在课时少进度快.学生学习难度大等问题.针对以上问题,从优化教学内容,重视课堂教学活动和教授大一新生好的学习方法等方面入手,探讨大学物理课程的教与学 ...

  9. 软酷网 推IT课程免费在线学计划

    由于Internet和IT技术的发展速度惊人,信息时代的知识成爆炸式的趋势扩展,不断需求掌握崭新IT技能的人才.越来越多的人想加入IT行业,成就高薪梦想. 因此,软酷网推出了"IT课程免费在 ...

  10. 视频教程-Excel条件格式实战视频课程【你学得会】-Office/WPS

    Excel条件格式实战视频课程[你学得会] Office中国金牌讲师,从事企业信息系统解决方案专业认识,Office二次开发讲师.拥有多年C#,VB和VBA开发经验和教学经验,擅长讲授Access.E ...

最新文章

  1. Ubuntu命令行连接wifi热点
  2. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1102:与指定数字相同的数的个数
  3. rx.observable_使用Java 8 CompletableFuture和Rx-Java Observable
  4. python 时间_Python-基础-时间日期处理小结
  5. 知乎要用AI打造智能社区,专治「答非所问」的瓦力机器人已上线
  6. 【Python】【Flask】Flask 后台发送html页面多种方法
  7. 安全地更改grub2屏幕分辨率
  8. 第15章-使用远程服务
  9. 一个字同时设置了粗体斜体,哪个先生效?
  10. pta mysql训练题集(341-360)
  11. Ubuntu1604 在startup 中添加开机自启动
  12. 硬件设计——外围电路(晶振电路)
  13. angularjs的三目运算
  14. C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
  15. 计算机中完成全选的快捷键,怎么全选-很实用!word中全选的快捷键介绍及使用方法...
  16. 来来来,一起来pick宏基因组binning分析工具
  17. java中多态的作用,多态的好处,以及为什么要用多态?
  18. MapReduce稍微高级编程之PageRank算法的实现
  19. 金融科技之:农业供应链金融系统平台建设方案分享
  20. 麻省电气工程与计算机科学专业,美国留学 麻省理工学院电气工程与计算机科学理科专业介绍...

热门文章

  1. Python三大排序算法实现
  2. 腾讯云的使用(创建存储桶)。
  3. robcad和catia是什么关系_不认识CATIA?没关系,至少和它兄弟熟吧!
  4. indesign排版标点挤压_用indesign排版,一本书中,用同一种标点挤压设置,前面部分是对齐的,后面的不知道对不齐是怎么回事啊?????...
  5. 从一起交通事故看农村小流量标准建设公路
  6. 一篇文章让你瞬间知道Mybatis框架是如何使用的
  7. Ubuntu下使用单目相机运行ORB SLAM2
  8. inodemac_Inode7.0 for mac
  9. Filecoin之环境安装
  10. mac工具:微信双开,一步到位