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一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
1月前
|
存储 编译器 C++
13函数
13函数
11 0
|
5月前
函数介绍
函数介绍
23 2
|
8月前
|
算法 编译器 程序员
|
4月前
|
存储 C语言
对函数的剖析二
对函数的剖析二
29 0
|
9月前
|
编译器 C语言
C 中的函数
C 中的函数
|
算法 编译器 C语言
函数部分的详细讲解
函数部分的详细讲解
C/C++ 字符串转数字函数
C/C++ 字符串转数字函数
333 0
函数(二)
今天我们来学习函数(二)的相关内容,视频我已经传到b站上了,现在把链接发给大家,大家可以在b站上观看。关于函数我在为大家补充变量作用域的知识点。它分为两个部分:1.局部变量 2.全局变量
81 0
函数(二)
十、详解函数柯里【下】
柯里化是函数的一个高级应用,想要理解它并不简单。因此我一直在思考应该如何更加表达才能让大家理解起来更加容易。 通过上一个章节的学习我们知道,接收函数作为参数的函数,都可以叫做高阶函数。我们常常利用高阶函数来封装一些公共的逻辑。 这一章我们要学习的柯里化,其实就是高阶函数的一种特殊用法。
126 0
|
Linux
opendir函数
opendir函数
128 0