使用 IoT 中樞傳送雲端到裝置訊息 (iOS)

Azure IoT 中樞是一項完全受控的服務,有助於讓數百萬個裝置和一個解決方案後端進行可靠且安全的雙向通訊。

本文示範如何:

  • 在裝置上接收雲端到裝置 (C2D) 訊息

在本文最後,您會執行以下 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 按鍵組合,在裝置模擬器中執行專案。

    在裝置模擬器中顯示 [建置並執行] 按鈕的螢幕擷取畫面。

傳送雲端到裝置訊息

您現在已準備好接收雲端到裝置的訊息。 使用 Azure 入口網站,將測試雲端到裝置訊息傳送至模擬的 IoT 裝置。

  1. 在模擬 IoT 裝置上執行的 iOS 應用程式範例應用程式中 ,選取 [ 啟動]。 應用程式會開始傳送裝置到雲端的訊息,但也會開始接聽雲端到裝置的訊息。

    檢視範例 IoT 裝置應用程式

  2. Azure 入口網站中,瀏覽至您的 IoT 中樞。

  3. 在 [裝置] 頁面上,選取模擬 IoT 裝置的裝置識別碼。

  4. 選取 [訊息到裝置] 開啟雲端到裝置訊息介面。

  5. 在 [訊息本文] 文字輸入框中撰寫純文字訊息,然後選取 [傳送訊息]。

  6. 觀看模擬 IoT 裝置上執行的應用程式。 應用程式會檢查來自 IoT 中樞的訊息,並且在畫面上顯示最新一則訊息的文字。 您的輸出看起來會如下列範例所示:

    檢視雲端到裝置的訊息

後續步驟

在本文中,您已了解如何傳送和接收雲端到裝置的訊息。