介绍适用于 Swift 的 Amazon IoT 设备软件开发工具包(开发者预览版)

作者: Vera Xia, Steve Kim |

今天,亚马逊云科技发布了适用于 Swift 的 Amazon IoT 设备软件开发工具包的开发者预览版。适用于 Swift 的 IoT 设备 SDK 允许 Swift 开发人员使用 MQTT 5 协议为 Linux 和苹果 macOS、iOS 和 tvOS 平台创建物联网应用程序。

该软件开发工具包支持 Swift 5.10+,旨在帮助开发人员轻松地与亚马逊云科技物联网服务集成。

适用于 Swift 的 Amazon IoT 设备软件开发工具包的主要功能

  • Swift 集成:利用现代 Swift 编程语言开发物联网应用程序。
  • 平台兼容性:专为支持 macOS、iOS、tvOS 和 Linux 而设计。
  • TLS 1.3 支持:Apple iOS 和 tvOS 平台上内置 TLS 1.3 支持,确保物联网应用程序使用最新的行业安全措施来保护传输中的数据。
  • MQTT 版本 5 (MQTT 5) 支持:与早期协议版本相比,MQTT 5 具有许多优点,包括错误处理和报告、通过共享订阅增强的可扩展性以及可自定义的用户属性。要了解更多信息,请参阅 MQTT 5 用户指南。
  • 异步 API:SDK 使用异步 API,这使您可以更轻松地开发响应式应用程序。

入门

适用于 Swift 的 Amazon IoT 设备软件开发工具包示例演示了使用 MQTT 5 客户端开发应用程序以访问亚马逊云科技物联网服务的简单而惯用的方法。

以下代码示例演示如何设置使用 mTLS 进行身份验证的 MQTT 客户端。使用 Swift Mqtt5ClientBuilder 简化了 MQTT 5 客户端和连接的设置。

let cert_filepath = "<certificate file path>"
let private_key_filepath = "<private key file path>"

let clientBuilder = try Mqtt5ClientBuilder.mtlsFromPath(
                                           certPath: cert_filepath, 
                                           keyPath: private_key_filepath, 
                                           endpoint: your_iot_endpoint)

let mqttClient = try clientBuilder.build()

// Open the connection after the client is built
try client.start()
Swift

客户端连接后,您可以订阅主题并在其上发布消息。发布和订阅操作使用异步 API,使代码易于推理,同时受益于并行执行。

// Setup a publish packet
let publishPacket: PublishPacket = PublishPacket(qos: .atLeastOnce,
                                                 topic: "test/topic", 
                                                 payload: "HELLO WORLD!".data(using: .utf8))
// Async-await on publish operation
let publishResult: PublishResult = try await client.publish(
                                                 publishPacket: publishPacket)
if let puback = publishResult.puback {
    print(
        "Publish operation finished with reasonCode: \(puback.reasonCode)"
    )
}
Swift

适用于 Swift 的 IoT 设备 SDK 包含完整的示例列表,用于演示不同的连接方法:

  • 使用证书和私钥文件直接 MQTT
  • 带自定义身份验证的直接 MQTT
  • 使用 PKCS12 直接 MQTT
  • 使用 Sigv4 身份验证通过 WebSockets 进行 MQTT
  • 使用 Amazon Cognito 凭证提供商通过 WebSockets 进行 MQTT

支持 iOS 和 tvOS

该 SDK 支持 iOS 和 tvOS,可与苹果的钥匙串无缝集成,以实现安全的凭据存储和检索。为了帮助您入门,我们提供了一个专门的 iOS PubSub 示例,用于演示 MQTT 5 订阅和消息发布操作。

启动示例应用程序(如下所示)后,您可以与其进行交互以设置 MQTT 客户端。您可以使用该客户端建立与 Amazon IoT Core 消息代理的连接,并将消息发布到 Amazon IoT Core。示例应用程序还将显示所有收到的有关测试主题的消息。

iOS 示例的屏幕截图

摘要

这篇博客文章简要介绍了适用于 Swift 的新物联网设备软件开发工具包。在接下来的几个月中,我们将继续添加更多功能和增强功能。请继续关注 SDK Github 页面以获取更新。欢迎在评论中留下您的反馈。

下一步

准备好开始了吗?要了解更多信息,请参阅以下资源:

  • 什么是亚马逊云科技物联网?
  • MQTT 5 用户指南

*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。