Send an UNSUBSCRIBE
packet to Broker
to unsubscribe from one Topic.
template < typename CompletionToken = typename asio::default_completion_token<executor_type>::type > decltype(auto) async_unsubscribe( const std::string & topic, const unsubscribe_props & props, CompletionToken && token = {} );
![]() |
Note |
---|---|
The Client may still receive residual Application Messages through
the |
Name |
Description |
---|---|
topic |
Topic to unsubscribe from. |
props |
An instance of |
token |
Completion token that will be used to produce a completion
handler. The handler will be invoked when the operation completes.
On immediate completion, invocation of the handler will be
performed in a manner equivalent to using |
The handler signature for this operation:
void (, // Result of operation. std::vector<
async_mqtt5::error_code
>, // Vector of Reason Codes containing // the result of unsubscribe operation // for the Topic in the UNSUBSCRIBE packet.
async_mqtt5::reason_code
async_mqtt5::unsuback_props
, // Properties received in the UNSUBACK packet. )
The asynchronous operation will complete when one of the following conditions is true:
UNSUBSCRIBE
packet and
has received an UNSUBACK
response from
the Broker.
async_mqtt5::error_code
in
the handler.
The list of all possible error codes that this operation can finish with:
boost::system::errc::errc_t::success
boost::asio::error::no_recovery
boost::asio::error::operation_aborted
async_mqtt5::client::error::malformed_packet
async_mqtt5::client::error::packet_too_large
async_mqtt5::client::error::pid_overrun
async_mqtt5::client::error::invalid_topic
Refer to the section on
to find the underlying causes for each error code.
Error handling
This asynchronous operation supports cancellation for the following
boost::asio::cancellation_type
values:
cancellation_type::terminal
- invokes mqtt_client::cancel
cancellation_type::partial
& cancellation_type::total
- prevents potential resending of the UNSUBSCRIBE
packet