# device_access_demo **Repository Path**: iotab_demo/device_access_demo ## Basic Information - **Project Name**: device_access_demo - **Description**: 设备接入Demo - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-05-09 - **Last Updated**: 2021-11-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 系统架构图 ![avatar](doc/img/sys_architecture.png) # 系统依赖 - kafka-2.x, 可使用`res`目录下的`kafka.yml`启动 (`docker-compose -f kafka.yml up -d`); # 流程 #### 启动顺序 1. kafka 2. my_mqtt_server 3. my_device_platform #### 设备接入流程 1. 设备通过mqtt协议连接平台,使用用户名密码方式认证 2. 平台验证设备身份,确定设备的productKey(产品类型)和DeviceID(设备ID), 代码参考cn.iotab.iotkit.server.demo.device.handler.MyRpcHandler.onBasicAuth 3. 设备订阅两个topic: (1)平台 --> 设备 数据【设备订阅】 /v1/platform/post/device/${productKey}/${deviceId} (2)平台 --> 设备 response【设备订阅】 /v1/platform/reply/device/${productKey}/${deviceId} 4. 设备通过以下两个topic向平台发送消息 (1)设备 --> 平台 数据【平台订阅】 /v1/device/post/platform/${productKey}/${deviceId} (2)设备 --> 平台 response【平台订阅】 /v1/device/reply/platform/${productKey}/${deviceId} 5. 平台收到设备消息进行处理的demo位于cn.iotab.iotkit.server.demo.device.handler包下; 平台向设备发送消息的demo位于cn.iotab.iotkit.server.demo.controller.DeviceController中