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

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

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

本节介绍如何在Amazon IoT 控制台中使用 Amazon IoT MQTT 测试客户端来查看发送和接收的 MQTT 消息。 Amazon IoT本部分中使用的示例涉及 入门 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 客户端)。

    
                            从左侧导航栏的控制台菜单中选择 MQTT 测试客户端。
  2. Subscribe to a topic(订阅主题)选项卡中,输入topicName订阅您的设备发布的主题。对于入门示例应用程序,请订阅 #,它订阅了所有消息主题。

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

    
                            “订阅主题” 选项卡。

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

    
                            显示该主题的部分已成功订阅。
  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 控制台中使用 Amazon IoT MQTT 客户端查看通过共享订阅发送和接收的 Amazon IoT MQTT 消息。 共享订阅允许多个客户端共享一个主题的订阅,只有一个客户接收使用随机分布发布到该主题的消息。要模拟多个 MQTT 客户端(在本例中为两个 MQTT 客户端)共享同一个订阅,您可以通过多个 Web 浏览器在Amazon IoT 控制台中打开 Amazon IoT MQTT 客户端。本节使用的示例与 入门 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。通过这种方式,您可以模拟共享相同订阅 $share/group1/topic1 的两个不同的 MQTT 客户端。

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

    
                            共享订阅流与两个客户端共享一个主题的订阅,并且只有一个客户端会收到使用随机分布发布到该主题的消息。