Paho.mqtt.c简介

Windows下编译完成后的动态库如下:

paho-mqtt3a :异步API接口的库,API函数都是以MQTTAsync开头,API函数定义在MQTTAsync.h。

paho-mqtt3as :异步API接口的库,API函数都是以MQTTAsync开头,API函数定义在MQTTAsync.h,这个库默认带有TLS加密功能,同时也需要openssl库支持,才能使用这个库。

paho-mqtt3c :同步API接口的库,API函数都是以MQTTClient开头,API函数定义在MQTTClient.h。

paho-mqtt3cs :同步API接口的库,API函数都是以MQTTClient开头,API函数定义在MQTTClient.h,这个库默认带有TLS加密功能,同时也需要openssl库支持,才能使用这个库。
 

MQTTClient同步和异步模式并存
虽然paho.mqtt.c存在两种模式API接口,一个是异步的​MQTTAsync​,另一个是同步的​MQTTClient​。但这里说的同步和异步并不是绝对的。在MQTTClient接口中,应用程序依然可以通过MQTTClient_setCallbacks()接口函数将一些操作设置为异步模式,比如失去连接,接收订阅消息和接收发布消息交付的结果。

在MQTTClient的同步模式中,客户端应用代码运行在一个单个的线程中,消息通过MQTTClient_publish() 和MQTTClient_publishMessage() 两个函数进行发布。可以通过MQTTClient_waitForCompletion() 函数去确定Qos1和Qos2类型的消息是否被成功的交付到服务器。

可以使用MQTTClient_receive()函数进行同步模式下接收一个消息。为了可以处理一些需要回复的应答和保持网络连接的MQTT "ping"消息,应用程序必须以一定的频率去调用MQTTClient_receive() 或者 MQTTClient_yield() 函数。

在MQTTClient的异步模式中,客户端运行在多个线程上。主程序可以向同步模式一样调用客户端的库函数进行,发布和订阅消息,但是对于一些握手和网络连接维护的操作在后台进行。状态的通知和被接收的消息,通过由MQTTClient_setCallbacks()(包括MQTTClient_messageArrived(), MQTTClient_connectionLost() 和MQTTClient_deliveryComplete())注册的回调函数提供。这些API不是线程安全的,不能在没有同步机制的多线程下面进行调用。对于线程安全的函数可以使用MQTTAsync中的API。
 

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不被定义的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值