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
相关文章
|
1月前
|
Shell PHP
escapeshellarg() 函数
escapeshellarg() 函数
|
11月前
|
机器学习/深度学习
函数的使用
任务1 统计小组一门课程的总分及平均分。
57 1
|
11月前
|
算法 编译器
函数(2)
函数(2)
37 0
|
11月前
|
人工智能
函数练习
用菜单的形式分别选择百钱买百鸡,九九表,水仙花数。
46 0
|
11月前
|
存储 编译器
函数(下)
函数(下)
81 0
|
Python
什么是函数
什么是函数
95 0
javaSprict 03 函数的使用
本文将讲述javaSprict中函数的声明,调用方法
javaSprict 03 函数的使用
|
Serverless
比值函数
比值函数
194 0
|
存储 编译器
函数
函数
79 0