在用戶端裝置之間轉送 MQTT 訊息,AWS IoT Core - AWS IoT Greengrass

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在用戶端裝置之間轉送 MQTT 訊息,AWS IoT Core

您可以在用戶端裝置與之間轉送 MQTT 訊息和其他資料。AWS IoT Core用戶端裝置會連線至核心裝置上執行的 MQTT 代理程式元件。根據預設,核心裝置不會在用戶端裝置和. AWS IoT Core 根據預設,用戶端裝置只能透過 MQTT 互相通訊。

若要在用戶端裝置之間轉送 MQTT 訊息AWS IoT Core,請將 MQTT 橋接器元件設定為執行下列動作:

  • 將訊息從用戶端裝置轉送至AWS IoT Core。

  • 將訊息從轉送AWS IoT Core至用戶端裝置。

注意

即使用戶端裝置使用 QoS 0 發佈和訂閱本機 MQTT 代理程式AWS IoT Core,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 物件。如需詳細資訊,請參閱 更新零組件組態

Console
{ "mqttTopicMapping": { "HelloWorldIotCore": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }
AWS CLI
{ "components": { "aws.greengrass.clientdevices.mqtt.Bridge": { "version": "2.0.0", "configurationUpdate": { "merge": "{\"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 橋接器元件組態會指定將符合主題篩選器的主題訊息轉送AWS IoT Core至用戶端裝置。clients/+/hello/world/event/response

{ "mqttTopicMapping": { "HelloWorldEventConfirmation": { "topic": "clients/+/hello/world/event/response", "source": "IotCore", "target": "LocalMqtt" } } }