Function esp_idf_svc::sys::esp_mqtt_client_publish

source ·
pub unsafe extern "C" fn esp_mqtt_client_publish(
    client: *mut esp_mqtt_client,
    topic: *const i8,
    data: *const i8,
    len: i32,
    qos: i32,
    retain: i32,
) -> i32
Expand description

@brief Client to send a publish message to the broker

Notes:

  • This API might block for several seconds, either due to network timeout (10s) or if publishing payloads longer than internal buffer (due to message fragmentation)
  • Client doesn’t have to be connected for this API to work, enqueueing the messages with qos>1 (returning -1 for all the qos=0 messages if disconnected). If MQTT_SKIP_PUBLISH_IF_DISCONNECTED is enabled, this API will not attempt to publish when the client is not connected and will always return -1.
  • It is thread safe, please refer to esp_mqtt_client_subscribe for details

@param client MQTT client handle @param topic topic string @param data payload string (set to NULL, sending empty payload message) @param len data length, if set to 0, length is calculated from payload string @param qos QoS of publish message @param retain retain flag

@return message_id of the publish message (for QoS 0 message_id will always be zero) on success. -1 on failure, -2 in case of full outbox.