云服务器内容精选

  • 2.设备端 域名 切换 完成平台端配置后,需要进行设备端业务开发。完整的设备开发流程可参考设备侧开发。本章节以Paho-MQTT开源MQTT客户端为例,介绍在设备迁移场景下,设备侧如何在只修改接入地址的情况下,实现设备建立MQTT连接、Topc订阅、消息发布等功能。 //接入华为云IoT的域名,在控制台的"总览"界面的"平台接入地址"中获取“设备侧”的MQ TTS 接入地址。 String server = "ssl://******.st1.iotda-device.cn-north-4.myhuaweicloud.com:8883"; // Paho MQTT客户端。 MqttClient myMqttClient = new MqttClient(server, "myClientId", persistence); // Paho MQTT连接参数。 MqttConnectOptions connOpts = new MqttConnectOptions(); connOpts.setCleanSession(true); connOpts.setKeepAliveInterval(120); connOpts.setUserName("myUserName"); connOpts.setPassword("myPassword".toCharArray()); myMqttClient.connect(connOpts); System.out.println("Broker: " + broker + " Connected"); // Paho MQTT消息订阅。 myMqttClient.subscribe("/aircondition/cmd", new MyMessageListener()); // Paho MQTT发布消息。 String topic = "/aircondition/data/up"; String content = "{\"temperature\": 26.0 }"; MqttMessage message = new MqttMessage(content.getBytes()); message.setQos(0); myMqttClient.publish(topic, message);
  • 业务场景说明 自建MQTT Broker基于MQTT协议的上行数据和下行指令的业务定义如下: 表1 业务场景 业务场景 通信Topic 报文Payload 设备上报数据 /aircondition/data/up { "temperature": 26.0 } 服务端控制指令 /aircondition/cmd { "switch": "off" } 设备使用一机一密的认证方式。 设备通过Topic上报数据,通过消息流转功能将数据转发到后端服务。 服务端通过消息下发接口下发消息给设备。
  • 1.设备接入地址切换 IoT场景设备量大,设备能力弱。IoT的迁移需尽量减少对设备侧的改动。华为云IoT提供多种技术方案来解决这个问题。 对于自建IoT平台设备,设备连接平台使用的是原有IoT平台域名,则设备侧可以不用做任何修改,将域名通过DNS解析到华为云IoT平台接入地址即可完成迁移。 对于存量第三方平台的设备,如果设备支持修改接入平台地址,则可以将设备侧地址切换为华为云IoT平台接入地址完成迁移。 对于设备能力比较强,可以进行OTA升级的设备,华为云提供Device SDK支持设备通过OTA完成接入地址切换。
  • 2.设备接入鉴权适配 当前各个云厂商都会定义自己的鉴权方式,导致设备迁移时,需要在设备端做各种适配。华为云IoT在平台端提供多种鉴权能力,把鉴权适配的动作移到云端,减少设备改动带来的风险。 自定义鉴权:针对存量设备设备鉴权参数无法修改的场景,平台提供自定义鉴权能力,支持在平台自定义配置设备的鉴权逻辑,实现设备鉴权方式免改动接入华为云IoT。 系统鉴权:华为云Device SDK提供了系统默认的鉴权能力,对于支持修改代码的设备,可以集成SDK通过轻量化改动就可以实现设备的接入。 对于存量设备信息的迁移,华为云也提供了多种迁移能力满足不同的应用场景: 设备迁移服务:华为云IoTDA提供自动化,高效的迁移能力,支持第三方云平台的存量产品和设备信息全量同步到华为云IoT,实现设备信息无感自动迁移。迁移流程如下: 图2 设备迁移 设备自注册:通过在自定义鉴权中开启自注册功能,支持设备在连接到平台时自动注册设备到平台,而不需要提前进行设备的迁移。 批量注册设备:通过华为云提供的SDK调用创建设备接口,进行批量的设备注册。