本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
您可以在客户端设备和 AWS IoT Core之间中继 MQTT 消息和其他数据。客户端设备与在核心设备上运行的 MQTT 代理组件相连接。默认情况下,核心设备不会在客户端设备和 AWS IoT Core之间中继 MQTT 消息或数据。默认情况下,客户端设备之间只能通过 MQTT 相互通信。
要在客户端设备和之间中继 MQTT 消息 AWS IoT Core,请将 MQTT 网桥组件配置为执行以下操作:
-
将来自客户端设备的消息中继到 AWS IoT Core。
-
AWS IoT Core 将来自客户端设备的消息中继到客户端设备。
注意
即使客户端设备使用 QoS 0 发布和订阅 AWS IoT Core本地 MQTT 代理,MQTT 桥也使用 QoS 1 来发布和订阅。因此,当您将来自本地 MQTT 代理上的客户端设备的 MQTT 消息中继到时,您可能会观察到额外的延迟。 AWS IoT Core有关核心设备上 MQTT 配置的更多信息,请参阅配置 MQTT 超时和缓存设置。
配置并部署 MQTT 网桥组件
MQTT 网桥组件使用一系列主题映射,其中每个主题映射都指定一个消息源和一个消息目标。要在客户端设备和之间中继消息 AWS IoT Core,请部署 MQTT 桥接组件,并在组件配置中指定每个源和目标主题。
要将 MQTT 网桥组件部署到一台或一组核心设备,请创建包含 aws.greengrass.clientdevices.mqtt.Bridge 组件的部署。在部署的 MQTT 网桥组件配置中指定主题映射 mqttTopicMapping
。
以下示例定义了一个部署,该部署将 MQTT 网桥组件配置为将与 clients/+/hello/world
主题筛选条件匹配的主题消息从客户端设备中继到 AWS IoT Core。merge
配置更新需要序列化 JSON 对象。有关更多信息,请参阅 更新组件配置。
{
"mqttTopicMapping": {
"HelloWorldIotCore": {
"topic": "clients/+/hello/world",
"source": "LocalMqtt",
"target": "IotCore"
}
}
}
中继 MQTT 消息
要在客户端设备和之间中继 MQTT 消息 AWS IoT Core,请配置和部署 MQTT Bridge 组件并指定要中继的主题。
例 示例:将有关某个主题的消息从客户端设备中继到 AWS IoT Core
以下 MQTT 网桥组件配置指定将与 clients/+/hello/world/event
主题筛选条件匹配的主题消息从客户端设备中继到 AWS IoT Core
{
"mqttTopicMapping": {
"HelloWorldEvent": {
"topic": "clients/+/hello/world/event",
"source": "LocalMqtt",
"target": "IotCore"
}
}
}
例 示例:将有关某个主题的消息从客户端设备中继 AWS IoT Core 出来
以下 MQTT 网桥组件配置指定将与 clients/+/hello/world/event/response
主题筛选条件匹配的主题消息从 AWS IoT Core
中继到客户端设备。
{
"mqttTopicMapping": {
"HelloWorldEventConfirmation": {
"topic": "clients/+/hello/world/event/response",
"source": "IotCore",
"target": "LocalMqtt"
}
}
}