coreMQTT 库 - FreeRTOS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

coreMQTT 库

Introduction

库是 coreMQTTMQTT(消息队列遥测传输)标准的客户端实现。MQTT 标准提供了一个轻量级发布/订阅(或 PubSub)消息收发协议,该协议在 TCP/IP 之上运行,通常用于机器到机器 (M2M) 和物联网 (IoT) 使用案例中。

库符合 coreMQTT MQTT 3.1.1 协议标准。此库针对内存占用量低进行了优化。此库的设计接受不同的使用案例,范围从仅使用 QoS 0 MQTT PUBLISH 消息的资源有限的平台到使用 QoS 2 MQTT PUBLISH over TLS(传输层安全性)连接的资源丰富的平台。该库提供了一组复合函数,可以选择组合这些函数,以准确满足特定使用案例的需求。

该库以 C 编写,并且设计为符合 ISO C90MISRA C:2012 的要求。此 MQTT 库对任何其他库没有依赖关系,但以下情况除外:

  • 标准 C 库

  • 客户实施的网络传输接口

  • (可选)用户实施的平台时间函数

该库通过预置简单的发送和接收传输接口规范与底层网络驱动程序分离。应用程序编写者可以选择现有传输接口,也可以为其应用程序实现自己的接口。

该库提供了一个高级 API,用于连接到 MQTT 代理、订阅/取消订阅主题、向主题发布消息以及接收传入的消息。此 API 将上述传输接口作为参数,并使用该参数在 MQTT 代理中发送和接收消息。

该库还公开了低级别串行器/解串器 API。此 API 可用于构建一个简单的 IoT 应用程序,它仅包含 MQTT 功能的所需子集,而不会产生任何其他开销。序列化器/解串器 API 可与任何可用的传输层 API(如套接字)结合使用,以向代理发送和接收消息。

在 IoT 应用程序中使用 MQTT 连接时,我们建议您使用安全传输接口,例如使用 TLS 协议的接口。

此 MQTT 库没有平台依赖项,例如线程或同步。此库确实具有演示安全内存使用的证明,并且没有堆分配,这使其适合 IoT 微控制器,但也可以完全移植到其他平台。它可以免费使用,并根据 MIT 开源许可分发。

--------------------------------------------------------------------------- | Code Size of coreMQTT | | (example generated with GCC for ARM Cortex-M) | |-------------------------------------------------------------------------| | File | With -O1 Optimisation | With -Os Optimisation | |-------------------------|-----------------------|-----------------------| | core_mqtt.c | 3.0K | 2.6K | |-------------------------|-----------------------|-----------------------| | core_mqtt_state.c | 1.4K | 1.1K | |-------------------------|-----------------------|-----------------------| | core_mqtt_serializer.c | 2.5K | 2.0K | |-------------------------|-----------------------|-----------------------| | Total estimate | 6.9K | 5.7K | ---------------------------------------------------------------------------