• {正版现货新书} 物联网系统开发:从0到1构建IoT平台 第2版 9787111780397 付强 傅静涛 著

{正版现货新书} 物联网系统开发:从0到1构建IoT平台 第2版 9787111780397 付强 傅静涛 著

全新正版现货,以书名为准,放心购买,购书咨询18515909251朱老师

58.55 5.9折 99 全新

库存67件

北京丰台

作者付强 傅静涛 著

出版社机械工业出版社

ISBN9787111780397

出版时间2024-06

装帧平装

开本16开

定价99元

货号18178656

上书时间2026-01-14

   商品详情   

品相描述:全新
商品描述
作者简介
付强,资深物联网技术专家,有超过15年的物联网行业从业经验,现担任某物联网软硬件解决方案公司的创始人兼CTO。曾就职于趋势科技、诺基亚创新中心硅谷实验室,专注于物联网软硬件产品和平台的设计和开发。 CSDN专栏作者,撰写了多篇物联网和AI相关的专栏文章。<br/>傅静涛,工信部高级项目经理,在一流高校从事相关专业科研和教学近30年,在物联网领域有非常深厚的积累。主持和实施了多个物联网软硬件产品和平台的研发与落地。

目录
目  录 Contents<br />前言<br />第一部分 物联网基础<br />第1章 什么是物联网 2<br />1.1 物联网和人工智能 3<br />1.2 物联网的现状与前景 4<br />第2章 常见的物联网协议 6<br />2.1 MQTT协议 6<br />2.2 MQTT-SN协议 7<br />2.3 CoAP 8<br />2.4 LwM2M协议 9<br />2.5 HTTP 9<br />2.6 LoRaWAN协议 9<br />2.7 NB-IoT协议 10<br />2.8 本章小结 10<br />第二部分 MQTT协议详解与实战<br />第3章 MQTT协议基础 13<br />3.1 MQTT协议的通信模型 13<br />3.2 MQTT的不同版本  14<br />3.3 MQTT Client 14<br />3.4 MQTT Broker 16<br />3.5 MQTT协议数据包格式 17<br />3.6 本章小结 19<br />第4章 MQTT 3.1.1协议详解 20<br />4.1 建立到Broker的连接 20<br />4.1.1 CONNECT数据包 20<br />4.1.2 CONNACK数据包 23<br />4.1.3 关闭连接 25<br />4.1.4 代码实践 26<br />4.2 订阅与发布 29<br />4.2.1 PUBLISH数据包 30<br />4.2.2 代码实践:发布消息 32<br />4.2.3 订阅一个主题 32<br />4.2.4 代码实践:订阅主题 35<br />4.2.5 取消订阅 37<br />4.3 QoS及其最佳实践 40<br />4.3.1 MQTT协议中的QoS等级 40<br />4.3.2 QoS0 40<br />4.3.3 QoS1 41<br />4.3.4 QoS2 42<br />4.3.5 代码实践:使用不同的QoS<br />发布消息 45<br />4.3.6 实际的QoS 48<br />4.3.7 QoS的最佳实践 48<br />4.4 Retained消息和LWT 49<br />4.4.1 Retained消息 49<br />4.4.2 代码实践:发布和接收<br />Retained消息 50<br />4.4.3 LWT 52<br />4.4.4 代码实践:监控Client连接<br />状态 52<br />4.5 Keep Alive与连接保活 54<br />4.5.1 Keep Alive 54<br />4.5.2 代码实践 56<br />4.5.3 连接保活 57<br />4.6 本章小结 59<br />第5章 MQTT 5.0协议详解 60<br />5.1 协议包内容扩展 60<br />5.1.1 属性集 60<br />5.1.2 原因码 60<br />5.2 更完善的连接管理 63<br />5.2.1 获取MQTT Broker的连接<br />属性 63<br />5.2.2 代码实践:建立MQTT 5.0<br />连接 65<br />5.2.3 Client主动断开连接 65<br />5.2.4 代码实践:主动断开连接,<br />触发遗愿机制 66<br />5.2.5 Broker主动断开连接 67<br />5.2.6 代码实践:处理客户端标识符<br />冲突 67<br />5.3 更完善的会话管理 68<br />5.3.1 清理会话启动 69<br />5.3.2 会话过期时间 69<br />5.3.3 代码实践:在CONNECT数据包<br />中设定会话过期时间 70<br />5.3.4 代码实践:在DISCONNECT<br />数据包中更新会话过期时间 70<br />5.4 新增消息过期机制 71<br />5.4.1 消息过期时间 71<br />5.4.2 代码实践:发布带有过期<br />时间的消息 72<br />5.5 协议级别支持共享订阅 73<br />5.5.1 如何使用共享订阅 73<br />5.5.2 代码实践:使用共享订阅 74<br />5.5.3 代码实践:使用带通配符的<br />共享订阅 75<br />5.5.4 代码实践:多个共享订阅组 76<br />5.6 数据包可携带用户属性 77<br />5.6.1 为什么要引入用户属性 77<br />5.6.2 典型的使用场景 78<br />5.7 可声明消息体格式 79<br />5.7.1 为什么要声明消息体格式 79<br />5.7.2 如何声明消息体格式 79<br />5.7.3 代码实践:发布带有消息体<br />格式的消息 79<br />5.8 可设置主题别名 80<br />5.8.1 主题名映射 81<br />5.8.2 代码实践:使用主题别名 81<br />5.9 新增请求/响应模式 82<br />5.9.1 MQTT 5.0之前的解决方案 82<br />5.9.2 MQTT 5.0的解决方案 83<br />5.9.3 代码实践:使用请求/响应模式<br />进行数据交互 84<br />5.10 订阅时可指定订阅标识符 85<br />5.10.1 订阅标识符 85<br />5.10.2 代码实践:使用订阅标<br />识符 85<br />5.11 更完善的订阅选项 86<br />5.11.1 QoS等级选项 87<br />5.11.2 非本地选项 87<br />5.11.3 保留Retain标识符选项 87<br />5.11.4 保留消息处理选项 87<br />5.11.5 代码实践:设置非本地<br />选项 87<br />5.11.6 代码实践:设置保留Retain<br />标识符选项 88<br />5.11.7 代码实践:设置保留消息<br />处理选项 89<br />5.12 更完善的认证机制 91<br />5.13 本章小结 92<br />第6章 MQTT协议实战 93<br />6.1 “AI+IoT”项目实战 93<br />6.1.1 用TensorFlow在Android系统<br />上进行物体识别 93<br />6.1.2 如何在MQTT协议里传输大<br />文件 94<br />6.1.3 消息去重 95<br />6.1.4 最终的消息数据格式 95<br />6.1.5 代码实践:上传识别结果 95<br />6.1.6 在浏览器中运行<br />MQTT Client 97<br />6.1.7 代码实践:接收识别结果 97<br />6.1.8 搭建私有MQTT Broker 98<br />6.1.9 传输层安全 100<br />6.2 MQTT常见问题解答 101<br />6.3 开发物联网应用,学会MQTT<br />协议就够了吗 101<br />6.4 本章小结 103<br />第三部分 实战:从零开始搭建<br /> 一个IoT平台<br />第7章 准备工作台 107<br />7.1 安装需要的组件 107<br />7.2 Maque IotHub的组成部分 108<br />7.3 项目结构 109<br />7.3.1 IotHub Server 109<br />7.3.2 IotHub DeviceSDK 109<br />7.4 本章小结 111<br />第8章 设备生命周期管理 112<br />8.1 设备注册 112<br />8.1.1 设备三元组 112<br />8.1.2 EMQX的认证方式 113<br />8.1.3 设备接入流程 117<br />8.1.4 Server API:设备注册 118<br />8.1.5 调整EMQX配置 120<br />8.1.6 修改DeviceSDK 121<br />8.1.7 Server API:设备信息<br />查询 122<br />8.1.8 Server API:获取接入IotHub<br />的一次性密码(JWT) 123<br />8.1.9 完善细节 125<br />8.2 设备连接状态管理 127<br />8.2.1 Poor man’s Solution 127<br />8.2.2 使用EMQX的解决方案 128<br />8.2.3 管理设备的连接状态 132<br />8.3 设备的禁用与删除 136<br />8.3.1 禁用设备 136<br />8.3.2 删除设备 141<br />8.4 设备权限管理 142<br />8.4.1 为什么要控制Publish和<br />Subscribe权限 142<br />8.4.2 EMQX的ACL功能 142<br />8.4.3 集成EMQX的ACL功能 146<br />8.5 给IotHub加一点扩展性 148<br />8.5.1 EMQX的纵向扩展 148<br />8.5.2 EMQX的横向扩展 149<br />8.6 本章小结 151<br />第9章 上行数据处理 152<br />9.1 选择一个可扩展的方案 152<br />9.1.1 完全基于MQTT协议的方案 153<br />9.1.2 基于WebHook的方案 154<br />9.1.3 数据格式 155<br />9.1.4 主题名规划 156<br />9.1.5 上行数据存储 156<br />9.1.6 通知业务系统 157<br />9.1.7 上行数据查询 157<br />9.1.8 上行数据处理流程 157<br />9.2 实现上行数据处理功能 158<br />9.2.1 DeviceSDK的功能实现 158<br />9.2.2 IotHub Server的功能实现 160<br />9.2.3 代码联调 162<br />9.2.4 通知业务系统 164<br />9.2.5 Server API历史消息查询 167<br />9.3 设备状态上报 168<br />9.3.1 设备状态 168<br />9.3.2 DeviceSDK的实现 169<br />9.3.3 IotHub Server 的实现 169<br />9.3.4 Server API:查询设备状态 171<br />9.3.5 代码联调 172<br />9.3.6 为何不用Retained消息 172<br />9.4 时序数据库 173<br />9.4.1 时序数据 173<br />9.4.2 时序数据库概述 174<br />9.4.3 收集设备连接状态变化的<br />数据 174<br />9.5 本章小结 177<br />第10章 下行数据处理 178<br />10.1 选择一个可扩展的方案 179<br />10.1.1 完全基于 MQTT协议的<br />方案 179<br />10.1.2 基于EMQX RESTful API的<br />方案 180<br />10.1.3 下行数据格式 180<br />10.1.4 主题名规划 181<br />10.1.5 如何订阅主题 182<br />10.1.6 设备端消息去重 182<br />10.1.7 指令回复 183<br />10.2 DeviceSDK端的实现 183<br />10.2.1 消息去重 183<br />10.2.2 提取元数据 184<br />10.2.3 处理指令 185<br />10.2.4 回复指令 186<br />10.3 服务端的实现 187<br />10.3.1 更新ACL 列表 187<br />10.3.2 EMQX发布功能 187<br />10.3.3 Server API:发送指令 188<br />10.3.4 Broker自动订阅 189<br />10.3.5 通知业务系统 190<br />10.3.6 代码联调 192<br />10.4 本章小结 195<br />第11章 IotHub的高级功能 196<br />11.1 RPC式调用 196<br />11.1.1 主题规划 197<br />11.1.2 等待指令回复 198<br />11.1.3 服务端实现 198<br />11.1.4 Server API:发送RPC指令 200<br />11.1.5 更新设备ACL列表 201<br />11.1.6 更新服务器订阅列表 201<br />11.1.7 DeviceSDK端实现 202<br />11.1.8 代码联调 203<br />11.2 设备数据请求 204<br />11.2.1 更新设备ACL列表 205<br />11.2.2 服务端实现 206<br />11.2.3 DeviceSDK端实现 207<br />11.2.4 代码联调 207<br />11.3 NTP服务 209<br />11.3.1 IotHub 的 NTP 服务 209<br />11.3.2 DeviceSDK端实现 210<br />11.3.3 服务端实现 211<br />11.3.4 代码联调 212<br />11.4 设备分组 212<br />11.4.1 功能设计 213<br />11.4.2 服务端实现 215<br />11.4.3 DeviceSDK端实现  218<br />11.4.4 代码联调 221<br />11.5 M2M设备间通信 223<br />11.5.1 主题名规划 223<br />11.5.2 服务端实现 224<br />11.5.3 DeviceSDK端实现 225<br />11.5.4 代码联调 225<br />11.6 OTA升级 227<br />11.6.1 功能设计 227<br />11.6.2 服务端实现 229<br />11.6.3 DeviceSDK端实现 233<br />11.6.4 代码联调 235<br />11.7 设备影子 238<br />11.7.1 什么是设备影子 238<br />11.7.2 设备影子的数据结构 238<br />11.7.3 设备影子的数据流向 239<br />11.7.4 服务端实现 241<br />11.7.5 DeviceSDK端实现 246<br />11.7.6 代码联调 248<br />11.8 本章小结 250<br />第12章 扩展EMQX Broker 251<br />12.1 EMQX的插件系统 251<br />12.1.1 Erlang语言 252<br />12.1.2 安装编译工具 252<br />12.2 我们会用到的Erlang特性 253<br />12.2.1 Erlang简介 253<br />12.2.2 变量和赋值 254<br />12.2.3 特殊的 Erlang 数据类型 255<br />12.2.4 模式匹配 255<br />12.2.5 模块与函数 256<br />12.2.6 宏定义 257<br />12.2.7 OTP 257<br />12.3 搭建开发和编译环境 257<br />12.3.1 使用插件模板 257<br />12.3.2 代码结构 257<br />12.3.3 编译和打包 260<br />12.4 实现基于RabbitMQ的Hook<br />插件:emqx_rabbitmq?_?plugin 260<br />12.4.1 插件配置文件 260<br />12.4.2 建立RabbitMQ的连接池 261<br />12.4.3 处理client.connected事件 263<br />12.4.4 处理client.disconnected<br />事件 263<br />12.4.5 处理message.publish事件 264<br />12.5 使用emqx_rabbitmq?_?plugin<br />插件 265&

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP