檢視MQTT訊息 AWS IoT MQTT用戶端 - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

檢視MQTT訊息 AWS IoT MQTT用戶端

本節說明如何使用 AWS IoT MQTT測試用戶端 AWS IoT 控制台觀看發MQTT送和接收的消息 AWS IoT。 本節中使用的範例與中使用的範例有關入門 AWS IoT Core;不過,您可以取代 topicName 在具有 IoT 解決方案使用之任何主題名稱或主題篩選器的範例中使用。

設備發布由主題識別的MQTT消息以將其狀態傳達給 AWS IoT和 AWS IoT 發布MQTT消息以通知設備和應用程序更改和事件。您可以使用用MQTT戶端來訂閱這些主題,並在訊息發生時觀看訊息。您也可以使用MQTT測試用戶端將MQTT訊息發佈到您的已訂閱裝置和服務 AWS 帳戶.

在MQTT用戶端中檢視MQTT訊息

若要檢視MQTT測試用戶端中的MQTT訊息
  1. 中AWS IoT 控制台,在左側菜單中,選擇測試,然後選擇MQTT測試客戶端

    從左側導覽列的主控台功能表中選擇MQTT測試用戶端。
  2. 訂閱主題標籤中,輸入 topicName 以訂閱您的裝置發佈的主題。如需入門範例應用程式,請訂閱 #,其會訂閱所有訊息主題。

    繼續入門範例,在 Subscribe to a topic (訂閱主題) 標籤的 Topic filter (主題篩選條件) 欄位中,輸入 #,然後選擇 Subscribe (訂閱)。

    訂閱主題標籤。

    主題訊息日誌頁面 # 即會開啟,而且 # 會出現在 Subscriptions (訂閱) 清單中。如果您配置的設備設定您的裝置正在運行示例程序,則應該會看到它發送到的消息 AWS IoT 在 消息日誌中。當收到已訂閱主題的訊息時,訊息記錄項目會出現在 [發佈] 區段下方 AWS IoT.

    顯示主題的部分已成功訂閱。
  3. # 訊息日誌頁面上,您也可以將訊息發佈至主題,但您必須指定主題名稱。您無法發佈至 # 主題。

    發佈至已訂閱主題的訊息會在收到時出現在訊息日誌中,最近的訊息首先出現。

疑難排解MQTT訊

使用萬用字元主題篩選條件

如果您的訊息未如預期般顯示在訊息日誌中,請嘗試訂閱萬用字元主題篩選條件,如 主題篩選條件 中所述。MQTT多層萬用字元主題篩選器是雜湊或井字號 (#),可用作「訂閱」主題欄位中的主題篩選器。

訂閱 # 主題篩選條件會訂閱訊息代理程式接收的每個主題。您可以縮小篩選範圍,方法是將主題篩選條件路徑的元素取代為 # 多層萬用字元或 '+' 單層萬用字元。

在主題篩選條件中使用萬用字元時
  • 多層萬用字元必須是主題篩選條件中的最後一個字元。

  • 主題篩選條件路徑的每個主題層只能有一個單層萬用字元。

例如:

主題篩選條件

顯示訊息與

#

任何主題名稱

topic_1/#

開頭為 topic_1/ 的主題名稱

topic_1/level_2/#

開頭為 topic_1/level_2/ 的主題名稱

topic_1/+/level_3

開頭為 topic_1/、結尾為 /level_3,並且在兩者之間有任何值之一個元素的主題名稱。

如需主題篩選條件的詳細資訊,請參閱 主題篩選條件

檢查主題名稱錯誤

MQTT主題名稱和主題篩選器區分大小寫。例如,如果您的設備將消息發佈到Topic_1(大寫為 T)而不是您訂閱的主題,則其消息將不會出現在MQTT測試客戶端中。topic_1不過,訂閱萬用字元主題篩選條件會顯示裝置正在發佈訊息,而且您可以看到它使用的主題名稱不是您預期的。

從MQTT用戶端發佈MQTT訊息

若要將訊息發佈至MQTT主題
  1. 在MQTT測試用戶端頁面的 [發佈至主題] 索引標籤的 [主題名稱] 欄位中,輸入 topicName 你的消息。在此範例中,使用 my/topic

    注意

    不要在主題名稱中使用個人身份信息,無論是在MQTT測試客戶端還是在系統實施中使用它們。主題名稱可以出現在未加密的通訊和報告中。

  2. 在訊息承載視窗中,輸入下列內容JSON:

    { "message": "Hello, world", "clientType": "MQTT test client" }
  3. 選擇「發佈」,將訊息發佈至 AWS IoT.

    注意

    確定您已訂閱 my/topic 主題,然後再發佈您的訊息。

    發佈至主題索引標籤。
  4. Subscriptions (訂閱) 清單中,選擇 my/topic 來查看訊息。您應該會看到該消息出現在發布消息有效負載窗口下方的MQTT測試客戶端中。

    已收到顯示已發佈主題的畫面。

您可以將MQTT郵件發佈至其他主題,方法是變更 topicName 在「主題名稱」欄位中,然後選擇「發佈」按鈕。

重要

當您建立具有重疊主題的多個訂閱 (例如,probe1/溫度和probe1/#) 時,發佈至符合兩個訂閱的主題的單一訊息可能會多次傳遞,每個重疊的訂閱一次。

在用MQTT戶端中測試共用訂閱

本節說明如何使用 AWS IoT MQTT用戶端 AWS IoT 控制台觀看發MQTT送和接收的消息 AWS IoT 使用共用訂閱。 共享訂閱允許多個用戶端共用主題的訂閱,只有一個用戶端接收使用隨機發佈到該主題發佈的訊息。若要模擬共MQTT用相同訂閱的多個MQTT用戶端 (在此範例中為兩個用戶端),請開啟 AWS IoT MQTT用戶端 AWS IoT來自多個 Web 瀏覽器的控制台。本節中使用的範例與 入門 AWS IoT Core 中使用的範例無關。如需詳細資訊,請參閱共享訂閱

若要共用MQTT主題的訂閱
  1. 中AWS IoT 控制台,在導航窗格中,選擇測試,然後選擇MQTT測試客戶端

  2. 訂閱主題標籤中,輸入 topicName 以訂閱您的裝置發佈的主題。若要使用共享訂閱,請訂閱共享訂閱的主題篩選條件,如下所示:

    $share/{ShareName}/{TopicFilter}

    範例主題篩選條件可以是 $share/group1/topic1,其會訂閱訊息主題 topic1

    顯示如何為共用訂閱指定主題篩選器的索引標籤。
  3. 開啟另一個 Web 瀏覽器,然後重複步驟 1 和步驟 2。如此一來,您就會模擬共用相同訂閱$share/group1/topic1的兩個不同MQTT用戶端。

  4. 選擇一個MQTT用戶端,在「發佈至主題」標籤的「主題名稱」欄位中,輸入 topicName 你的消息。在此範例中,使用 topic1。請嘗試發佈訊息幾次。從這兩個用MQTT戶端的 [訂閱] 清單中,您應該能夠看到用戶端是否使用隨機發行版接收訊息。在這個例子中,我們發布相同的消息「你好從 AWS IoT 控制台」三次。左側的MQTT用戶端收到訊息兩次,右側的MQTT用戶端收到一次訊息。

    共用訂閱會與兩個用戶端共用一個主題的訂閱,而且只有一個用戶端會收到使用隨機發佈至該主題的訊息。