
MQTT-C是MQTT v3.1.1用C. MQTT编写的客户端是一种基于轻量级的发布者 - bubscriber-sbubscriber,它通常用于物联网和网络应用程序中,在该应用程序中,可预期高延迟和低数据速率链接。 MQTT-C的目的是为嵌入式系统和PC的PC提供一个便携式MQTT客户端。 MQTT-C通过提供透明的平台抽象层(PAL)来实现这一目标,该层使移植到新平台上。 MQTT-C是完全螺纹安全的,但在单线程系统上也可以很好地运行,这使MQTT-C非常适合嵌入式系统和微控制器。最后,MQTT-C很小。总共只有两个源文件少于2000行。
很高兴听到MQTT-C正在使用的所有地方!请随时与我联系或在Github上提交问题!
要使用MQTT-C,您首先将struct mqtt_client实例化,然后通过调用@Ref mqtt_init进行初始化。
struct mqtt_client client ; /* instantiate the client */
mqtt_init ( & client , ...); /* initialize the client */初始化客户时,您需要连接到MQTT经纪人。
mqtt_connect ( & client , ...); /* send a connection request to the broker. */此时,客户可以使用!例如,我们可以订阅这样的主题:
/* subscribe to "toaster/temperature" with a max QoS level of 0 */
mqtt_subscribe ( & client , "toaster/temperature" , 0 );我们可以将其发布到这样的主题:
/* publish coffee temperature with a QoS level of 1 */
int temperature = 67 ;
mqtt_publish ( & client , "coffee/temperature" , & temperature , sizeof ( int ), MQTT_PUBLISH_QOS_1 );这些是基础!从这里开始,示例和API文档是入门的好地方。
只有两个源文件需要构建mqtt.c和mqtt_pal.c 。这些文件是ANSI C(C89)兼容,应与任何C编译器进行编译。
然后,只需#include <mqtt.h> 。
另外,您可以使用Cmake或提供的Makefile构建MQTT-C。为方便起见提供这些。
可以在此处找到预制文档:https://liambindle.ca/mqtt-c。请务必查看示例。
@Ref API文档包含所有文档应用程序编程人员应需要的所有文档。 @Ref PAL文档包含将MQTT-C移向新平台所需的一切,而其他模块包含MQTTT-C开发人员的文档。
MQTT-C单元测试使用CMOCKA单元测试框架。因此,必须在计算机上安装CMOCKA才能构建和运行单元测试。为了方便起见,包括一个简单的"makefile"以在Unix状的机器上构建单元测试和示例。单位测试和示例可以如下构建:
$ make all单位测试和示例将在"bin/"目录中构建。单位测试可以像这样进行:
$ ./bin/tests [address [port]]请注意, c地址和 c端口参数都是可选的,用于指定用于测试的MQTT代理的位置。如果没有给出 C地址,则将使用Mosquitto MQTT测试服务器。如果没有给出 c端口,将使用端口1883。
MQTT-C在mqtt_pal.h和mqtt_pal.c中提供了透明的平台抽象层(PAL)。这些文件声明并实施了MQTT-C所需的类型和调用。有关PAL的完整文档,请参阅@Ref PAL。
请随时在此处提交问题和撤退。提交拉装时,请确保您已经完全记录了更改并添加了适当的单元测试。
该项目已根据MIT许可获得许可。有关更多详细信息,请参见"LICENSE"文件。
MQTT-C最初是作为CMPT 434(冬季学期,2018年)在萨斯喀彻温大学的最终项目开发的: