本文分享自华为云社区《如何将iOS设备通过MQTT协议连接到华为云物联网平台: Flutter和Swift两种方法》,作者: 张俭 。
当今时代,物联网技术正逐步改变我们的生活和工作方式。华为云IoTDA服务,为开发者提供了一个开放、稳定、可靠的基础设施,以便实现设备与云端的无缝连接和双向通信。本文讲述如何使用Flutter和Swift两种开发语言连接到华为云物联网平台。
需要完成如下两个步骤
此外,确保你熟悉MQTT协议的基本工作原理。
Flutter是一个由Google开发的开源UI软件开发工具包,用于开发跨平台应用。
在pubspec.yaml添加依赖,可以从Github仓库中获取最新的commitId
dependencies: huaweicloud_iot_device_sdk: git: url: https://github.com/Shoothzj/huaweicloud-iot-device-sdk-dart.git ref: latest commitId
import 'dart:io'; import 'package:huaweicloud_iot_device_sdk/src/device_client.dart'; void main(List<String> arguments) async { var deviceClient = DeviceClient( host: "iot-mqtts.cn-north-4.myhuaweicloud.com", port: 8883, deviceId: deviceId, secret: deviceSecret, disableHmacSha256Verify: true, useTls: true, disableTlsVerify: true); await deviceClient.connect(); await deviceClient.reportDeviceMessage(content: "ddddd"); }
在上述代码中, 我们首先导入了必要的库, 然后初始化**DeviceClient**对象, 并连接到华为云IoTDA服务。最后, 我们发送一个简单的消息来验证连接是否成功。
Swift是Apple用于iOS、macOS、watchOS、tvOS应用开发的强大语言。
在Package.Swift中添加huaweicloud-iot-device-sdk-swift作为依赖项,可以从Github仓库中获取最新的commitId
let package = Package( name: "YourProject", platforms: [ .iOS(.v13), .macOS(.v13), .tvOS(.v13), ], dependencies: [ .package(url: "https://github.com/your-username/your-package-name.git", .revision("latest commitId")), ], targets: [ .target( name: "YourProject", dependencies: ["HuaweiCloudIoTDevice"]), ] )
let deviceClient = DeviceClient(host: "iot-mqtts.cn-north-4.myhuaweicloud.com", port: 1883, deviceId: "b7cfa256-49df-4d2f-81c3-76697c69c03c_aaaa", secret: "18209205026", disableHmacSha256Verify: true) let connectResult: Bool = try deviceClient.connect() wait(for: [XCTestExpectation(description: "wait for connect")], timeout: 10) try deviceClient.reportDeviceMessage(content: "hahaha") wait(for: [XCTestExpectation(description: "wait for report message")], timeout: 10)
在上述代码中, 我们首先导入了必要的库, 然后初始化**DeviceClient**对象, 并连接到华为云IoTDA服务。最后, 我们发送一个简单的消息来验证连接是否成功。
通过以上步骤,你已经学会了如何使用Flutter和Swift两种方法将iOS设备连接到华为云物联网平台。现在,您不仅能够连接设备,还能实现基本的消息发送功能,为后续更复杂的应用开发打下了基础。
目前两个基础sdk还在开发中,如果您有什么需求/疑问,可以在Github上的项目中提交issue,多谢。