MQTTClient_setCallbacks()函数

简介: MQTTClient_setCallbacks()
int MQTTClient_setCallbacks ( MQTTClient handle,
void *  context,
MQTTClient_connectionLost cl,
MQTTClient_messageArrived ma,
MQTTClient_deliveryComplete dc 
)

此函数为特定客户端设置回调函数。如果客户端应用程序不使用特定回调,请将相关参数设置为 NULL。调用 MQTTClient_setCallbacks() 会将客户端置于多线程模式。任何必要的消息确认和状态通信都在后台处理,无需客户端应用程序的任何干预。有关详细信息,请参阅异步与同步客户端应用程序。

注意:调用此函数时,必须断开 MQTT 客户端的连接。

1.成功调用 MQTTClient_create() 的有效客户端句柄。

2.指向任何特定于应用程序的上下文的指针。上下文指针传递给每个回调函数,以提供对回调中上下文信息的访问。

3.指向 MQTTClient_connectionLost() 回调函数的指针。如果应用程序不处理断开连接,则可以将其设置为 NULL。

这是一个回调函数,当从服务器收到断开连接数据包时将调用该函数。这仅适用于 MQTT V5 及更高版本。

指向最初传递给 ::MQTTAsync_setDisconnected() 的上下文值的指针,该值包含任何特定于应用程序的上下文

断开连接时收到的 MQTT V5 属性(如果有)。

断开连接时收到的 MQTT V5 原因码。目前,原因始终设置为 NULL。

4.指向 MQTTClient_messageArrived() 回调函数的指针。调用 MQTTClient_setCallbacks() 时必须指定此回调函数。

这是一个回调函数。客户端应用程序必须提供此函数的实现才能启用消息的异步接收。该函数通过将其作为参数传递给 MQTTClient_setCallbacks() 来注册到客户端库。当从服务器收到与客户端订阅匹配的新消息时,客户端库将调用它。此函数在与运行客户端应用程序的线程不同的线程上执行。


指向最初传递给 MQTTClient_setCallbacks() 的上下文值的指针,该值包含任何特定于应用程序的上下文。

与收到的消息关联的主题。

主题的长度(如果主题名称中还嵌入了一个空字符),否则主题 Len 为 0。如果 topicLen 为 0,则 strlen(topicName) 返回的值是可以信任的。如果 topicLen 大于 0,则可以通过访问 topicName 作为长度为 topicLen 的字节数组来检索完整的主题名称。

收到的消息的MQTTClient_message结构。此结构包含消息负载和属性。

5. 指向 MQTTClient_deliveryComplete() 回调函数的指针。如果应用程序同步发布,或者不想检查是否成功传递,则可以将其设置为 NULL。


这是一个回调函数。客户端应用程序必须提供此函数的实现,以启用消息传递的异步通知。该函数通过将其作为参数传递给 MQTTClient_setCallbacks() 来注册到客户端库。客户端应用程序向服务器发布消息后,客户端库将调用它。它表示已完成对所请求服务质量的必要握手和确认(请参阅 MQTTClient_message.qos)。此函数在与运行客户端应用程序的线程不同的线程上执行。注意:在 QoS0 上发布消息时不调用 MQTTClient_deliveryComplete()。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
6月前
|
存储 编译器 C++
13函数
13函数
24 0
|
3月前
|
存储 JavaScript 前端开发
使用函数
【8月更文挑战第26天】
13 1
|
前端开发
纯函数
纯函数
77 0
|
监控 程序员 C语言
基本初等函数 对数函数
基本初等函数 对数函数
127 0
|
编译器 C语言 C++
C++——函数
C++——函数
118 0
C++——函数
|
SQL 分布式计算 关系型数据库
not_in函数致错
Not in 函数-致错 我们开发当中有些业务逻辑会用到not in()这个函数, 岗位角度:不管是后端开发还是大数据开发还是数据分析师… 技术角度:不管是Mysql、Hive、Maxcompute…
147 0
|
JSON JavaScript 前端开发
6、函数
JavaScript 有三种声明函数的方法。
142 0