使用 Amazon IoT MQTT 客户端查看 MQTT 消息 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon IoT MQTT 客户端查看 MQTT 消息

此部分描述如何在 Amazon IoT 控制台中使用 Amazon IoT MQTT 测试客户端以查看 Amazon IoT 发送和接收的 MQTT 消息。本部分中使用的示例涉及 Amazon IoT Core 入门 使用的示例;但您可以将示例中使用的 topicName 替换为您的 IoT 解决方案使用的任何主题名称或主题筛选条件

设备发布有关主题的 MQTT 消息以将其状态传达给 Amazon IoT,而 Amazon IoT 发布 MQTT 消息以向设备和应用程序通知更改和事件。您可以使用 MQTT 客户端订阅这些主题,并在出现消息时查看这些消息。您还可以使用 MQTT 测试客户端将 MQTT 消息发布到您 Amazon Web Services 账户中的已订阅设备和服务。

查看 MQTT 客户端中的 MQTT 消息

在 MQTT 测试客户端中查看 MQTT 消息
  1. 打开 Amazon IoT 控制台,在左侧菜单中选择 Test (测试),然后选择 MQTT client (MQTT 客户端)。

  2. Subscribe to a topic(订阅主题)选项卡中,输入topicName订阅您的设备发布的主题。对于入门示例应用程序,请订阅 #,它订阅了所有消息主题。

    继续使用入门示例操作,在 Subscribe to a topic(订阅主题)选项卡上的 Topic filter(主题筛选条件)字段,输入 #,然后选择 Subscribe(订阅)。

    主题消息日志页 # 将会打开,且 # 会显示在 Subscriptions(订阅)列表。如果您在 配置您的设备 中配置的设备正在运行示例程序,您应该看到它发送到 # 消息日志中的 Amazon IoT 的消息。当 Amazon IoT 收到订阅主题的消息时,消息日志条目将显示在 Publish(发布)部分下。

  3. # 消息日志页面,您还可以将消息发布到主题,但需要指定主题名称。您无法发布到 # 主题。

    发布到已订阅主题的消息将在收到时在消息日志中显示,最近的消息将首先显示。

排除 MQTT 消息的故障

使用通配符主题筛选条件

如果您的消息未按预期在消息日志中显示,请尝试按照 主题筛选条件 中所述订阅通配符主题筛选条件。MQTT 多级通配符主题筛选条件是哈希或井号 (#),并且可以用作 Subscription topic(订阅主题)字段中的主题筛选条件。

订阅 # 主题筛选条件将订阅消息代理接收的每个主题。您可以将主题筛选条件路径替代为 # 多级通配符或“+”单级通配符,从而缩小筛选条件的范围。

在主题筛选条件中使用通配符时
  • 多级通配符必须是主题筛选条件中的最后一个字符。

  • 主题筛选条件路径在每个主题级别中只能有一个单级通配符。

例如:

主题筛选条件

显示带有以下内容的消息

#

任何主题名称

topic_1/#

topic_1/ 开头的主题名称

topic_1/level_2/#

topic_1/level_2/ 开头的主题名称

topic_1/+/level_3

topic_1/ 开头并以 /level_3 结尾的主题名称,并且在之间有一个任意值的元素。

有关主题筛选条件的更多信息,请参阅 主题筛选条件

检查主题名称错误

MQTT 主题名称和主题筛选条件区分大小写。如果您的设备将消息发布到 Topic_1(带有一个大写的 T)而不是您订阅的主题 topic_1,则其消息将不会显示在 MQTT 测试客户端中。但是,订阅通配符主题筛选条件时,会显示设备正在发布消息,并且您会看到它使用的主题名称不是您所期望的主题名称。

从 MQTT 客户端发布 MQTT 消息

向 MQTT 主题发布消息
  1. 在 MQTT 测试客户端页面上,在 Publish to a topic(发布到主题)选项卡上的 Topic name(主题名称)字段中,输入您消息的 topicName。在此示例中,使用 my/topic

    注意

    不要在主题名称中使用个人身份信息,无论您是在测试 MQTT 客户端还是在系统实施中使用这些信息。主题名称可以出现在未加密的通信和报告中。

  2. 在消息负载窗口中,输入以下 JSON:

    { "message": "Hello, world", "clientType": "MQTT test client" }
  3. 选择 Publish(发布)以将消息发布到 Amazon IoT。

    注意

    确保您已订阅 my/topic 主题,然后再发布您的消息。

  4. Subscription(订阅)列中,选择 my/topic 以查看消息。您应该看到该消息显示在 MQTT 测试客户端中的发布消息有效负载窗口下。

您可以通过更改 Topic name(主题名称)字段中的 topicName,然后选择 Publish(发布)按钮,以将 MQTT 消息发布到其它主题。

在 MQTT 客户端中测试共享订阅

本节介绍如何使用Amazon IoT里面的 MQTT 客户端Amazon IoT控制台观看发送和接收的 MQTT 消息Amazon IoT使用共享订阅。共享订阅允许多个客户端共享一个主题的订阅,只有一个客户端使用随机分发接收发布到该主题的消息。要模拟多个 MQTT 客户端(在本示例中为两个 MQTT 客户端)共享同一个订阅,请打开Amazon IoT里面的 MQTT 客户端Amazon IoT控制台来自多个网络浏览器。本节中使用的示例与中使用的示例无关Amazon IoT Core 入门。有关更多信息,请参见共享订阅

共享 MQTT 主题的订阅
  1. 在里面Amazon IoT控制台,在导航窗格中,选择测试然后选择MQTT 测试客户端

  2. Subscribe to a topic(订阅主题)选项卡中,输入topicName订阅您的设备发布的主题。要使用共享订阅,请按如下方式订阅共享订阅的主题筛选器:

    $share/{ShareName}/{TopicFilter}

    主题过滤器示例可以是$share/group1/topic1,它订阅了消息主题topic1

  3. 打开另一个 Web 浏览器,然后重复第 1 步和第 2 步。这样,您就可以模拟两个共享相同订阅的不同的 MQTT 客户端$share/group1/topic1

  4. 在... 中选择一个 MQTT 客户端发布到主题选项卡,在主题名称字段,输入主题名称你的信息。在此示例中,使用 topic1。尝试发布几次消息。来自订阅两个 MQTT 客户端的列表,你应该能够看到客户端使用随机分布接收消息。在此示例中,我们发布了相同的消息 “来自 HelloAmazon IoT控制台” 三次。左边的 MQTT 客户端两次收到消息,右边的 MQTT 客户端收到过一次消息。