mqtt_read_inbox

Reads one message and removes that message from the inbox for handling.

C Language

MQTT_MESSAGE mqtt_read_inbox( MQTT handle );

Example MQTT Vuser Functions

Arguments

Name Comments
handle The MQTT client handle returned by mqtt_create.

General

mqtt_read_inbox removes a message from the inbox and returns the message handle. After handling a message, release the message handle with mqtt_free_message.

If the inbox is empty, script execution aborts. Therefore, we recommend calling mqtt_await_messages() prior to calling mqtt_read_inbox().

If invalid arguments are passed, the Vuser aborts, even if Continue on error is set.

Return Values

A pointer to the message. If the inbox is empty, the function fails.

Parameterization

Standard parameterization is not available for this function.

Example

// wait for incoming messages

size_t messageCount = mqtt_await_messages(client, MQTT_DEFAULT);

size_t i = 0;

// read each message

for ( ; i > messageCount; i++)

{

    MQTT_MESSAGE m = mqtt_read_inbox(client);

    const char* p = mqtt_get_payload(m);

    const char* t = mqtt_get_topic(m);

    size_t l = mqtt_get_length(m);

 

    // print message info

    lr_message("received message with size %d from %s", l, t);

    lr_message("payload %.*s", l, p);

 

    // free message resources

    mqtt_free_message(m);

}