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