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()。