本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 MQTT 用戶端檢視 AWS IoT MQTT 訊息
本節說明如何在 AWS IoT 主控台topicName
取代為 IoT 解決方案所使用的任何主題名稱或主題篩選條件。
裝置會發佈主題識別的 MQTT 訊息,以向其傳達其狀態 AWS IoT,並 AWS IoT 發佈 MQTT 訊息,以通知裝置和應用程式有關變更和事件的資訊。您可以使用 MQTT 用戶端來訂閱這些主題,並在發生訊息時觀看它們。您也可以使用 MQTT 測試用戶端發佈 MQTT 訊息,以訂閱 中的裝置和服務 AWS 帳戶。
在 MQTT 用戶端中檢視 MQTT 訊息
下列程序說明如何訂閱裝置發佈訊息的特定 MQTT 主題,並在 AWS IoT 主控台
在 MQTT 測試用戶端中檢視 MQTT 訊息
-
在 AWS IoT 主控台
中的左側選單中,依序選擇 Test (測試) 和 MQTT test client (MQTT 測試用戶端)。 -
在 Subscribe to a topic (訂閱主題) 索引標籤中,輸入
topicName
來訂閱裝置發佈的主題。如需入門範例應用程式,請訂閱#
,其會訂閱所有訊息主題。繼續入門範例,在 Subscribe to a topic (訂閱主題) 標籤的 Topic filter (主題篩選條件) 欄位中,輸入
#
,然後選擇 Subscribe (訂閱)。主題訊息日誌頁面 # 即會開啟,而且
#
會出現在 Subscriptions (訂閱) 清單中。如果您在 中設定的裝置設定您的裝置正在執行範例程式,您應該會在 # 訊息日誌 AWS IoT 中看到傳送至 的訊息。收到具有訂閱主題的訊息時,訊息日誌項目會顯示在發佈區段下方 AWS IoT。 -
在 # 訊息日誌頁面上,您也可以將訊息發佈至主題,但您必須指定主題名稱。您無法發佈至 # 主題。
發佈至已訂閱主題的訊息會在收到時出現在訊息日誌中,最近的訊息首先出現。
疑難排解 MQTT 訊息
使用萬用字元主題篩選條件
如果您的訊息未如預期般顯示在訊息日誌中,請嘗試訂閱萬用字元主題篩選條件,如 主題篩選條件 中所述。MQTT 多層萬用字元主題篩選條件是雜湊或井號 (#
),並且可以用作 Subscription topic (訂閱主題) 欄位中的主題篩選條件。
訂閱 #
主題篩選條件會訂閱訊息代理程式接收的每個主題。您可以縮小篩選範圍,方法是將主題篩選條件路徑的元素取代為 #
多層萬用字元或 '+' 單層萬用字元。
在主題篩選條件中使用萬用字元時
-
多層萬用字元必須是主題篩選條件中的最後一個字元。
-
主題篩選條件路徑的每個主題層只能有一個單層萬用字元。
例如:
主題篩選條件 |
顯示訊息與 |
---|---|
|
任何主題名稱 |
|
開頭為 |
|
開頭為 |
|
開頭為 |
如需主題篩選條件的詳細資訊,請參閱 主題篩選條件。
檢查主題名稱錯誤
MQTT 主題和主題篩選條件會區分大小寫。例如,如果您的裝置正在將訊息發佈至 Topic_1
(具有大寫 T) 而不是 topic_1
(您已訂閱的主題),其訊息將不會出現在 MQTT 測試用戶端中。不過,訂閱萬用字元主題篩選條件會顯示裝置正在發佈訊息,而且您可以看到它使用的主題名稱不是您預期的。
從 MQTT 用戶端發佈 MQTT 訊息
將訊息發佈至 MQTT 主題
-
在 MQTT 測試用戶端頁面的 Publish to a topic (發佈到主題) 標籤中,於 Topic name (主題名稱) 欄位中輸入您訊息的
topicName
。在此範例中,使用my/topic
。注意
無論是在 MQTT 測試用戶端還是在系統實作中使用主題名稱,請不要在這些主題名稱中使用個人識別資訊。主題名稱可以出現在未加密的通訊和報告中。
-
在訊息承載視窗中,輸入下列 JSON:
{ "message": "Hello, world", "clientType": "MQTT test client" }
-
選擇 Publish (發佈) 以將您的訊息發佈至 AWS IoT。
注意
確定您已訂閱 my/topic 主題,然後再發佈您的訊息。
-
在 Subscriptions (訂閱) 清單中,選擇 my/topic 來查看訊息。您應該會在發佈訊息承載視窗下方看到訊息出現在 MQTT 測試用戶端中。
您可以變更 Topic name
(主題名稱) 欄位中的 topicName,然後選擇 Publish (發佈) 按鈕,以將 MQTT 郵件發佈至其他主題。
重要
當您建立具有重疊主題的多個訂閱 (例如 probe1/temp 和 probe1/#) 時,發佈至符合兩個訂閱之主題的單一訊息可能會多次交付,每個重疊訂閱一次。
在 MQTT 用戶端中測試共享訂閱
本節說明如何使用AWS IoT 主控台
共享 MQTT 主題的訂閱
-
在 AWS IoT 主控台
的導覽窗格中,選擇測試,然後選擇 MQTT 測試用戶端。 -
在 Subscribe to a topic (訂閱主題) 索引標籤中,輸入
topicName
來訂閱裝置發佈的主題。若要使用共享訂閱,請訂閱共享訂閱的主題篩選條件,如下所示:$share/{ShareName}/{TopicFilter}
範例主題篩選條件可以是
$share/group1/topic1
,其會訂閱訊息主題topic1
。 -
開啟另一個 Web 瀏覽器,然後重複步驟 1 和步驟 2。透過此方式,您模擬兩個共享相同訂閱
$share/group1/topic1
的不同 MQTT 客戶端。 -
選擇 MQTT 用戶端,在發佈到主題標籤的主題名稱欄位中輸入您訊息的
topicName
。在此範例中,使用topic1
。請嘗試發佈訊息幾次。從這兩個 MQTT 用戶端的訂閱清單中,您應該能夠看到用戶端使用隨機分佈接收訊息。在這個範例中,我們發佈相同的訊息 "Hello from AWS IoT console" 三次。左側的 MQTT 用戶端收到兩次訊息,右側的 MQTT 用戶端收到一次訊息。