使用 AWS IoT MQTT 客户端查看 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 client (MQTT 客户端)。 -
在 Subscribe to a topic(订阅主题)选项卡中,输入
topicName
订阅您的设备发布的主题。对于入门示例应用程序,请订阅#
,它订阅了所有消息主题。继续使用入门示例操作,在 Subscribe to a topic(订阅主题)选项卡上的 Topic filter(主题筛选条件)字段,输入
#
,然后选择 Subscribe(订阅)。主题消息日志页 # 将会打开,且
#
会显示在 Subscriptions(订阅)列表。如果您在 配置您的设备 中配置的设备正在运行示例程序,您应该看到它发送到 # 消息日志中的 AWS IoT 的消息。当 AWS IoT 收到订阅主题的消息时,消息日志条目将显示在 Publish(发布)部分下。 -
在 # 消息日志页面,您还可以将消息发布到主题,但需要指定主题名称。您无法发布到 # 主题。
发布到已订阅主题的消息将在收到时在消息日志中显示,最近的消息将首先显示。
排除 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 主题,然后再发布您的消息。
-
在 Subscription(订阅)列中,选择 my/topic 以查看消息。您应该看到该消息显示在 MQTT 测试客户端中的发布消息有效负载窗口下。
您可以通过更改 Topic name(主题名称)字段中的 topicName
,然后选择 Publish(发布)按钮,以将 MQTT 消息发布到其它主题。
重要
当您创建多个包含重叠主题的订阅时(例如 probe1/temperature 和 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 客户端的订阅列表中,您应该能够看到客户端使用随机分布接收消息。在此示例中,我们发布了三次相同的消息“来自 AWS IoT 控制台的 Hello”。左侧的 MQTT 客户端收到消息两次,右侧的 MQTT 客户端收到消息一次。