购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

Preface
前言

为什么要写这本书

2011年我在硅谷的时候,曾经参与设计和开发了一个物联网平台。这个平台的目的是为各种物联网设备提供统一的通信接口,以及提供数据存储和分析功能,降低物联网设备商的开发和运营成本。不过,由于物联网设备的异构性太强,同时平台的愿景过于超前,而当时物联网应用的发展包括资本的投入都远不及现在,这个项目不得不半路中止。

2015年,我在国内和朋友联合创办了一家物联网相关的公司。为了支持公司的硬件产品,我们开发了一个提供统一通信和数据服务的物联网平台,不过吸取了之前的教训,这个平台只对同一组织(公司)里的多个产品提供支持。当时各大云服务商,比如阿里云,提供了非常成熟的物联网套件,我们将这些物联网套件中的一些功能移植到了自研的物联网平台上。这个平台从技术层面很好地支持了公司从0到1、从1到 N 持续盈利的全流程。

在这个过程中我遇到过一些问题,也总结出一些非常有用的经验。在此期间,我也加入了一些物联网开发者的社区。在日常的技术交流里,我发现一些开发人员对常用的物联网协议的理解是有问题的,对一些功能应该在协议层面实现还是在业务层面实现不是很清楚。我曾在互联网上搜索过相关的技术文章,发现系统性讲解协议的规范和特性的文章非常少,不是只对一两个功能进行介绍,就是只翻译协议规范,缺乏代码示例。

在这种情况下,我在GitChat的专栏写了我的第一篇文章《MQTT协议快速入门》,详细地讲解了物联网应用中最常见的MQTT协议的规范和特性,并对每一个特性附以丰富的代码示例。

加入专栏文章的读者交流群后,我又发现读者还有很多关于设计、业务架构的疑问,深入理解MQTT协议并不能解决这些问题。这让我意识到,物联网应用开发并不像Web开发那样有成熟的设计模式和框架可以使用,开发者往往都是从协议级别开始往上搭,重复地造轮子。

因此,我觉得有必要把我们在开发物联网平台中遇到的困难和总结的经验分享出来,从协议开始讲起,再覆盖物联网后台开发中常见的设计模式和最佳实践,让其他的物联网开发者少走一些弯路,少造一些轮子,进而更快速、更高效地上线自己的产品。

读者对象

❑物联网应用开发人员

❑物联网架构师

❑物联网平台开发人员

❑对物联网感兴趣的开发人员

❑有一定经验的IM平台、移动推送平台开发人员

❑渴望学习更多物联网实际开发经验的人员

如何阅读本书

本书涵盖物联网应用开发80%的场景,理论和实战并重。本书内容分为三大部分。

第一部分(第1~2章)为物联网基础知识介绍,涵盖物联网的概念和常用协议。

第二部分(第3~6章)为MQTT协议详解,通过详尽的示例代码对MQTT 3.1.1和MQTT 5.0协议的规范和特性进行讲解。

第三部分(第7~14章)为物联网平台开发实战,从零开始用开源的组件搭建一个名为Maque IotHub的物联网平台,在这个过程中讲解物联网后台开发中常见的设计模式和最佳实践。

本书最后补充有结语与附录。结语总结了本书讲到的相关系统与知识体系,附录介绍了运行Maque IotHub的方法和步骤。

如果你对MQTT协议已经非常了解,可以直接从第三部分开始看起,第二部分可作为协议规范参考指南。

如果你是一名初学者,请务必从第1章的基础知识开始学习。

勘误和支持

由于作者的水平有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。

书中大量的实例代码都可以从我的GitHub站点(https://github.com/sufish)下载。你也可以关注我在GitChat的专栏(https://gitbook.cn/gitchat/author/59ed8409991df70ecd5a0f8f),并加入专栏读者群进行交流。如果你有更多的宝贵意见,也欢迎发邮件到yfc@hz.cmpbook.com。期待能够得到你们的真挚反馈。

致谢

首先要感谢EMQX的开发者和贡献者,开发和维护一款强大的开源MQTT Broker非常不易。

感谢GitChat提供平台并促成了本书的出版。

感谢在写作过程中很多人的支持与帮助,他们是:赵华振、李斌锋、邓斌、戚祥、于伟、皮文星、陈育春、陆正武、虞晓东、张恒汝、高喆、刘威、刘冉、付志涛、宗杰、王大平、李振捷、李波、张鹏、管西京、闫芳、王玉芹、王秀明、杨振珂。

感谢公司的全体同人,大家的共同努力才给我提供了一个能够实践自己想法的机会。

最后感谢关心我的家人,尤其是我的妻子和女儿,她们的支持是我完成本书的动力!

谨以此书献给我最亲爱的家人,以及广大物联网开发者!

付强 sI7bOH5sPiWDlDZUQ7QgvaNGGttefRw+FIj32P/oNDBHapE1Mz7jwb4lPTq+udY2

点击中间区域
呼出菜单
上一章
目录
下一章
×