

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

# 選擇 MQTT 代理程式
<a name="choose-local-mqtt-broker"></a>

AWS IoT Greengrass 提供選項，讓您選擇要在核心裝置上執行的本機 MQTT 代理程式。用戶端裝置會連線至核心裝置上執行的 MQTT 代理程式，因此請選擇與您要連線的用戶端裝置相容的 MQTT 代理程式。

**注意**  <a name="note-deploy-one-mqtt-broker"></a>
我們建議您僅部署一個 MQTT 代理程式元件。[MQTT 橋接](mqtt-bridge-component.md)器和 [IP 偵測器](ip-detector-component.md)元件一次只能使用一個 MQTT 代理程式元件。如果您部署多個 MQTT 代理程式元件，則必須將其設定為使用不同的連接埠。

您可以從下列 MQTT 代理程式中選擇：
+ **[MQTT 3.1.1 代理程式 (Moquette)](mqtt-broker-moquette-component.md)** – `aws.greengrass.clientdevices.mqtt.Moquette`

  針對符合 MQTT 3.1.1 標準的輕量型 MQTT 代理程式選擇此選項。 AWS IoT Core MQTT 代理程式和 AWS IoT Device SDK 也符合 MQTT 3.1.1 標準，因此您可以使用這些功能來建立應用程式，在您的裝置和 中使用 MQTT 3.1.1。 AWS 雲端
+ **[MQTT 5 代理程式 (EMQX)](mqtt-broker-emqx-component.md)** – `aws.greengrass.clientdevices.mqtt.EMQX`

  選擇此選項以使用核心裝置和用戶端裝置之間的 MQTT 5 功能進行通訊。此元件使用的資源比 Moquette MQTT 3.1.1 代理程式多，在 Linux 核心裝置上需要 Docker。

  MQTT 5 與 MQTT 3.1.1 向後相容，因此您可以將使用 MQTT 3.1.1 的用戶端裝置連接到此代理程式。如果您執行 Moquette MQTT 3.1.1 代理程式，則可以將其取代為 EMQX MQTT 5 代理程式，而且用戶端裝置可以繼續如常連線和操作。

  <a name="note-local-mqtt-broker-mqtt-5-features"></a>
+ **實作自訂代理程式**

  選擇此選項可建立自訂本機代理程式元件，以與用戶端裝置通訊。您可以建立使用 MQTT 以外通訊協定的自訂本機代理程式。 AWS IoT Greengrass 提供元件 SDK，可用來驗證和授權用戶端裝置。如需詳細資訊，請參閱 [使用 AWS IoT Device SDK 與 Greengrass 核、其他元件和 通訊 AWS IoT Core與 Greengrass 核、其他元件和 通訊 AWS IoT Core](interprocess-communication.md) 和 [驗證和授權用戶端裝置](ipc-client-device-auth.md)。