![]() |
Home | Libraries | People | FAQ | More |
Send a SUBSCRIBE
packet to Broker
to create a Subscription to one Topic of interest.
template< typename CompletionToken = typename asio::default_completion_token<boost::mqtt5::mqtt_client::executor_type
>::type> decltype(auto) async_subscribe( constboost::mqtt5::subscribe_topic
& topic, const subscribe_props& props, CompletionToken&& token = {});
After the Subscription has been established, the Broker will send PUBLISH
packets to the Client
to forward Application Messages that were published to Topics that the
Client subscribed to. The Application Messages can be received with
mqtt_client::async_receive
function.
Name |
Description |
---|---|
|
A |
|
An instance of |
|
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<
boost::mqtt5::error_code
>, // Vector of Reason Codes containing the // single Subscription result for the Topic // in the SUBSCRIBE packet.
boost::mqtt5::reason_code
boost::mqtt5::suback_props
, // Properties received in the SUBACK packet. )
The asynchronous operation will complete when one of the following conditions is true:
SUBSCRIBE
packet and has
received a SUBACK
response from the
Broker.
boost::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
boost::mqtt5::client::error::malformed_packet
boost::mqtt5::client::error::packet_too_large
boost::mqtt5::client::error::pid_overrun
boost::mqtt5::client::error::invalid_topic
boost::mqtt5::client::error::wildcard_subscription_not_available
boost::mqtt5::client::error::subscription_identifier_not_available
boost::mqtt5::client::error::shared_subscription_not_available
Refer to the section on Error handling
to find the underlying causes for each error code.
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 SUBSCRIBE
packet