使用 IoT 中心发送云到设备消息 (iOS)

Azure IoT 中心是一项完全托管的服务,有助于在数百万台设备和单个解决方案后端之间实现安全可靠的双向通信。

本文介绍如何:

  • 在设备上接收云到设备的消息

在本文结束时,请运行以下 Swift iOS 项目:

注意

IoT 中心通过 Azure IoT 设备 SDK 对许多设备平台和语言(包括 C、Java、Python 和 JavaScript)提供 SDK 支持。

若要详细了解云到设备的消息,请参阅从 IoT 中心发送云到设备的消息

先决条件

  • Azure 中的活动 IoT 中心。

  • 适用于 iOS 平台的 Azure IoT 示例存储库中的代码示例。

  • 最新版本的 XCode,运行最新版本的 iOS SDK。 本快速入门已使用 XCode 9.3 和 iOS 11.3 测试过。

  • 最新版 CocoaPods

  • 确保已在防火墙中打开端口 8883。 本文中的设备示例使用 MQTT 协议,该协议通过端口 8883 进行通信。 在某些公司和教育网络环境中,此端口可能被阻止。 有关解决此问题的更多信息和方法,请参阅连接到 IoT 中心(MQTT)

模拟 IoT 设备

在本部分,我们将模拟一个运行 Swift 应用程序的 iOS 设备,以从 IoT 中心接收云到设备的消息。

安装 CocoaPods

CocoaPods 管理那些使用第三方库的 iOS 项目的依赖项。

在终端窗口中导航到相应文件夹,其中包含在先决条件中下载的存储库。 然后,导航到示例项目:

cd quickstart/sample-device

确保 XCode 已关闭,运行以下命令,以便安装在 podfile 文件中声明的 CocoaPods:

pod install

除了为项目安装所需的 Pod,安装命令还创建了一个 XCode 工作区文件,该文件已配置为对依赖项使用 Pod。

运行示例设备应用程序

  1. 检索设备的连接字符串。 可以从 Azure 门户中的设备详细信息边栏选项卡复制此字符串,或者使用以下 CLI 命令检索它:

    az iot hub device-identity connection-string show --hub-name {YourIoTHubName} --device-id {YourDeviceID} --output table
    
  2. 在 XCode 中打开示例工作区。

    open "MQTT Client Sample.xcworkspace"
    
  3. 展开“MQTT 客户端示例”项目,然后展开同名的文件夹。

  4. 打开 ViewController.swift,以便在 XCode 中进行编辑。

  5. 搜索 connectionString 变量,并使用第一个步骤中复制的设备连接字符串更新其值。

  6. 保存所做更改。

  7. 使用“生成并运行”按钮或“Command + R”组合键在设备模拟器中运行项目。

    Screenshot shows the Build and run button in the device emulator.

发送云到设备的消息

现在可以接收云到设备的消息。 使用 Azure 门户将测试性的云到设备消息发送到模拟 IoT 设备。

  1. 在模拟的 IoT 设备上运行的“iOS 应用示例”应用中,单击“启动”。 应用程序开始发送设备到云的消息,但同时也会开始侦听云到设备的消息。

    View sample IoT device app

  2. Azure 门户中导航到 IoT 中心。

  3. 在“设备”页上,选择模拟 IoT 设备的设备 ID。

  4. 选择“消息到设备”以打开云到设备消息接口。

  5. 在“消息正文”文本框中撰写纯文本消息,然后选择“发送消息”。

  6. 观察模拟 IoT 设备上运行的应用。 它会检查来自 IoT 中心的消息,并在屏幕上输出来自最新消息的文本。 输出应类似于以下示例:

    View cloud-to-device messages

后续步骤

本文已介绍了如何发送和接收云到设备的消息。