

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

# 配置 coreMQTT 库
<a name="afr-porting-mqtt"></a>

边缘设备可以使用 MQTT 协议与 AWS 云通信。AWS IoT 中托管一个 MQTT 代理，可与连接的边缘设备相互发送和接收消息。

coreMQTT 库会为运行 FreeRTOS 的设备实现 MQTT 协议。不需要移植 coreMQTT 库，但您设备的测试项目必须通过所有 MQTT 测试才能获得资格。有关更多信息，请参阅《FreeRTOS 用户指南》中的 [coreMQTT 库](https://docs.aws.amazon.com/freertos/latest/userguide/coremqtt.html)。**

## 先决条件
<a name="testing-prereqs-mqtt"></a>

要设置 coreMQTT 库测试，您需要一个网络传输接口移植。请参阅[移植网络传输接口](afr-porting-network-transport-interface.md)，了解更多信息。

## 测试
<a name="testing-mqtt"></a>

运行 coreMQTT 集成测试：
+ 向 MQTT 代理注册客户端证书。
+ 在 `config` 中设置代理端点并运行集成测试。

## 创建参考 MQTT 演示
<a name="reference-mqtt"></a>

我们建议使用 coreMQTT 代理来处理所有 MQTT 操作的线程安全。用户还需要发布和订阅任务以及 Device Advisor 测试，以验证应用程序是否有效地集成了 TLS、MQTT 和其他 FreeRTOS 库。

要使设备正式获得 FreeRTOS 的资格，请使用 AWS IoT Device Tester MQTT 测试用例验证您的集成项目。有关设置和测试的说明，请参阅 [AWS IoT Device Advisor 工作流程](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor-console-tutorial.html)。下面列出了 TLS 和 MQTT 的强制测试用例：


**TLS 测试用例**  

| 测试用例 | 测试用例 | 必需测试 | 
| --- | --- | --- | 
| TLS | TLS 连接 | 是 | 
| TLS | TLS 支持 AWS IoT 密码套件 | 推荐的[密码套件](https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html#tls-cipher-suite-support)  | 
| TLS | TLS 不安全服务器证书 | 是 | 
| TLS | TLS 主题名称服务器证书不正确 | 是 | 


**MQTT 测试用例**  

| 测试用例 | 测试用例 | 必需测试 | 
| --- | --- | --- | 
| MQTT | MQTT Connect | 是 | 
| MQTT | MQTT Connect 抖动重试次数 | 是，无警告 | 
| MQTT | MQTT 订阅 | 是 | 
| MQTT | MQTT 发布 | 是 | 
| MQTT | MQTT ClientPuback QoS1 | 是 | 
| MQTT | MQTT No Ack PingResp | 是 | 