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

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

coreMQTT 库

注意

此页面上的内容可能不是最新的。有关最新更新,请参阅 FreeRTOS.org 库页面

简介

coreMQTT 库是 MQTT(消息队列遥测传输)标准的客户端实现。MQTT 标准提供了一种在 TCP/IP 上运行的轻量级发布/订阅(或 PubSub)消息协议,通常用于机器对机器 (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 可用于构建仅包含所需的 MQTT 功能子集的简单 IoT 应用程序,无需任何其他开销。串行器/反串行化器 API 可与任何可用的传输层 API(如套接字)结合使用,用于向代理发送和接收消息。

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

此 MQTT 库没有平台依赖关系,例如线程或同步。该库有证据表明内存使用安全,没有堆分配,因此适用于 IoT 微控制器,但也完全可移植到其他平台。该库可免费使用,并根据 MIT 开源许可证分发。

coreMQTT 的代码大小(使用 GCC for ARM Cortex-M 生成的示例)
文件 使用 -O1 优化 使用 -Os 优化
core_mqtt.c 4.0K 3.4K
core_mqtt_state.c 1.7K 1.3K
core_mqtt_serializer.c 2.8K 2.2K
估计总数 8.5K 6.9K