pub struct AsyncClient { /* private fields */ }Expand description
An asynchronous client, communicates with MQTT EventLoop.
This is cloneable and can be used to asynchronously publish,
subscribe through the EventLoop, which is to be polled parallelly.
NOTE: The EventLoop must be regularly polled in order to send, receive and process packets
from the broker, i.e. move ahead.
Implementations§
Source§impl AsyncClient
impl AsyncClient
Sourcepub fn new(options: MqttOptions, cap: usize) -> (Self, EventLoop)
pub fn new(options: MqttOptions, cap: usize) -> (Self, EventLoop)
Create a new AsyncClient.
cap specifies the capacity of the bounded async channel.
Sourcepub const fn from_senders(request_tx: Sender<Request>) -> Self
pub const fn from_senders(request_tx: Sender<Request>) -> Self
Create a new AsyncClient from a channel Sender.
This is mostly useful for creating a test instance where you can listen on the corresponding receiver.
Sourcepub async fn publish_with_properties<T, P>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: P,
properties: PublishProperties,
) -> Result<(), ClientError>
pub async fn publish_with_properties<T, P>( &self, topic: T, qos: QoS, retain: bool, payload: P, properties: PublishProperties, ) -> Result<(), ClientError>
Sends a MQTT Publish with properties to the EventLoop.
§Errors
Returns an error if the topic or topic alias usage is invalid, or if the request cannot be queued on the event loop.
Sourcepub async fn publish_with_properties_tracked<T, P>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: P,
properties: PublishProperties,
) -> Result<PublishNotice, ClientError>
pub async fn publish_with_properties_tracked<T, P>( &self, topic: T, qos: QoS, retain: bool, payload: P, properties: PublishProperties, ) -> Result<PublishNotice, ClientError>
Sends a MQTT Publish with properties to the EventLoop and returns a tracked notice.
§Errors
Returns an error if the topic or topic alias usage is invalid, or if the request cannot be queued on the event loop.
Sourcepub async fn publish<T, P>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: P,
) -> Result<(), ClientError>
pub async fn publish<T, P>( &self, topic: T, qos: QoS, retain: bool, payload: P, ) -> Result<(), ClientError>
Sends a MQTT Publish to the EventLoop.
§Errors
Returns an error if the topic or topic alias usage is invalid, or if the request cannot be queued on the event loop.
Sourcepub async fn publish_tracked<T, P>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: P,
) -> Result<PublishNotice, ClientError>
pub async fn publish_tracked<T, P>( &self, topic: T, qos: QoS, retain: bool, payload: P, ) -> Result<PublishNotice, ClientError>
Sends a MQTT Publish to the EventLoop and returns a tracked notice.
§Errors
Returns an error if the topic or topic alias usage is invalid, or if the request cannot be queued on the event loop.
Sourcepub fn try_publish_with_properties<T, P>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: P,
properties: PublishProperties,
) -> Result<(), ClientError>
pub fn try_publish_with_properties<T, P>( &self, topic: T, qos: QoS, retain: bool, payload: P, properties: PublishProperties, ) -> Result<(), ClientError>
Attempts to send a MQTT Publish with properties to the EventLoop.
§Errors
Returns an error if the topic or topic alias usage is invalid, or if the request cannot be queued immediately on the event loop.
Sourcepub fn try_publish_with_properties_tracked<T, P>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: P,
properties: PublishProperties,
) -> Result<PublishNotice, ClientError>
pub fn try_publish_with_properties_tracked<T, P>( &self, topic: T, qos: QoS, retain: bool, payload: P, properties: PublishProperties, ) -> Result<PublishNotice, ClientError>
Attempts to send a MQTT Publish with properties to the EventLoop and returns a tracked notice.
§Errors
Returns an error if the topic or topic alias usage is invalid, or if the request cannot be queued immediately on the event loop.
Sourcepub fn try_publish<T, P>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: P,
) -> Result<(), ClientError>
pub fn try_publish<T, P>( &self, topic: T, qos: QoS, retain: bool, payload: P, ) -> Result<(), ClientError>
Attempts to send a MQTT Publish to the EventLoop.
§Errors
Returns an error if the topic or topic alias usage is invalid, or if the request cannot be queued immediately on the event loop.
Sourcepub fn try_publish_tracked<T, P>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: P,
) -> Result<PublishNotice, ClientError>
pub fn try_publish_tracked<T, P>( &self, topic: T, qos: QoS, retain: bool, payload: P, ) -> Result<PublishNotice, ClientError>
Attempts to send a MQTT Publish to the EventLoop and returns a tracked notice.
§Errors
Returns an error if the topic or topic alias usage is invalid, or if the request cannot be queued immediately on the event loop.
Sourcepub const fn prepare_ack(&self, publish: &Publish) -> Option<ManualAck>
pub const fn prepare_ack(&self, publish: &Publish) -> Option<ManualAck>
Prepares a MQTT PubAck/PubRec packet for manual acknowledgement.
Returns None for QoS0 publishes, which do not require acknowledgement.
Sourcepub async fn manual_ack(&self, ack: ManualAck) -> Result<(), ClientError>
pub async fn manual_ack(&self, ack: ManualAck) -> Result<(), ClientError>
Sends a prepared MQTT PubAck/PubRec to the EventLoop.
This is useful when manual_acks is enabled and acknowledgement must be deferred.
§Errors
Returns an error if the acknowledgement cannot be queued on the event loop.
Sourcepub fn try_manual_ack(&self, ack: ManualAck) -> Result<(), ClientError>
pub fn try_manual_ack(&self, ack: ManualAck) -> Result<(), ClientError>
Attempts to send a prepared MQTT PubAck/PubRec to the EventLoop.
§Errors
Returns an error if the acknowledgement cannot be queued immediately on the event loop.
Sourcepub async fn ack(&self, publish: &Publish) -> Result<(), ClientError>
pub async fn ack(&self, publish: &Publish) -> Result<(), ClientError>
Sends a MQTT PubAck/PubRec to the EventLoop based on publish QoS.
Only needed if the manual_acks flag is set.
§Errors
Returns an error if the derived acknowledgement cannot be queued on the event loop.
Sourcepub fn try_ack(&self, publish: &Publish) -> Result<(), ClientError>
pub fn try_ack(&self, publish: &Publish) -> Result<(), ClientError>
Attempts to send a MQTT PubAck/PubRec to the EventLoop based on publish QoS.
Only needed if the manual_acks flag is set.
§Errors
Returns an error if the derived acknowledgement cannot be queued immediately on the event loop.
Sourcepub async fn reauth(
&self,
properties: Option<AuthProperties>,
) -> Result<(), ClientError>
pub async fn reauth( &self, properties: Option<AuthProperties>, ) -> Result<(), ClientError>
Sends a MQTT AUTH packet to the EventLoop.
§Errors
Returns an error if the AUTH packet cannot be queued on the event loop.
Sourcepub fn try_reauth(
&self,
properties: Option<AuthProperties>,
) -> Result<(), ClientError>
pub fn try_reauth( &self, properties: Option<AuthProperties>, ) -> Result<(), ClientError>
Attempts to send a MQTT AUTH packet to the EventLoop.
§Errors
Returns an error if the AUTH packet cannot be queued immediately on the event loop.
Sourcepub async fn publish_bytes_with_properties<T>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: Bytes,
properties: PublishProperties,
) -> Result<(), ClientError>where
T: Into<PublishTopic>,
pub async fn publish_bytes_with_properties<T>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: Bytes,
properties: PublishProperties,
) -> Result<(), ClientError>where
T: Into<PublishTopic>,
Sends a MQTT Publish with properties to the EventLoop.
§Errors
Returns an error if the topic or topic alias usage is invalid, or if the request cannot be queued on the event loop.
Sourcepub async fn publish_bytes_with_properties_tracked<T>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: Bytes,
properties: PublishProperties,
) -> Result<PublishNotice, ClientError>where
T: Into<PublishTopic>,
pub async fn publish_bytes_with_properties_tracked<T>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: Bytes,
properties: PublishProperties,
) -> Result<PublishNotice, ClientError>where
T: Into<PublishTopic>,
Sends a MQTT Publish with Bytes payload and properties, returning a tracked notice.
§Errors
Returns an error if the topic or topic alias usage is invalid, or if the request cannot be queued on the event loop.
Sourcepub async fn publish_bytes<T>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: Bytes,
) -> Result<(), ClientError>where
T: Into<PublishTopic>,
pub async fn publish_bytes<T>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: Bytes,
) -> Result<(), ClientError>where
T: Into<PublishTopic>,
Sends a MQTT Publish with Bytes payload to the EventLoop.
§Errors
Returns an error if the topic or topic alias usage is invalid, or if the request cannot be queued on the event loop.
Sourcepub async fn publish_bytes_tracked<T>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: Bytes,
) -> Result<PublishNotice, ClientError>where
T: Into<PublishTopic>,
pub async fn publish_bytes_tracked<T>(
&self,
topic: T,
qos: QoS,
retain: bool,
payload: Bytes,
) -> Result<PublishNotice, ClientError>where
T: Into<PublishTopic>,
Sends a MQTT Publish with Bytes payload to the EventLoop and returns a tracked notice.
§Errors
Returns an error if the topic or topic alias usage is invalid, or if the request cannot be queued on the event loop.
Sourcepub async fn subscribe_with_properties<S: Into<String>>(
&self,
topic: S,
qos: QoS,
properties: SubscribeProperties,
) -> Result<(), ClientError>
pub async fn subscribe_with_properties<S: Into<String>>( &self, topic: S, qos: QoS, properties: SubscribeProperties, ) -> Result<(), ClientError>
Sends a MQTT Subscribe with properties to the EventLoop.
§Errors
Returns an error if the topic filter is invalid or if the request cannot be queued on the event loop.
Sourcepub async fn subscribe_with_properties_tracked<S: Into<String>>(
&self,
topic: S,
qos: QoS,
properties: SubscribeProperties,
) -> Result<RequestNotice, ClientError>
pub async fn subscribe_with_properties_tracked<S: Into<String>>( &self, topic: S, qos: QoS, properties: SubscribeProperties, ) -> Result<RequestNotice, ClientError>
Sends a tracked MQTT Subscribe with properties to the EventLoop.
§Errors
Returns an error if the topic filter is invalid or if the request cannot be queued on the event loop.
Sourcepub async fn subscribe<S: Into<String>>(
&self,
topic: S,
qos: QoS,
) -> Result<(), ClientError>
pub async fn subscribe<S: Into<String>>( &self, topic: S, qos: QoS, ) -> Result<(), ClientError>
Sends a MQTT Subscribe to the EventLoop.
§Errors
Returns an error if the topic filter is invalid or if the request cannot be queued on the event loop.
Sourcepub async fn subscribe_tracked<S: Into<String>>(
&self,
topic: S,
qos: QoS,
) -> Result<RequestNotice, ClientError>
pub async fn subscribe_tracked<S: Into<String>>( &self, topic: S, qos: QoS, ) -> Result<RequestNotice, ClientError>
Sends a tracked MQTT Subscribe to the EventLoop.
§Errors
Returns an error if the topic filter is invalid or if the request cannot be queued on the event loop.
Sourcepub fn try_subscribe_with_properties<S: Into<String>>(
&self,
topic: S,
qos: QoS,
properties: SubscribeProperties,
) -> Result<(), ClientError>
pub fn try_subscribe_with_properties<S: Into<String>>( &self, topic: S, qos: QoS, properties: SubscribeProperties, ) -> Result<(), ClientError>
Attempts to send a MQTT Subscribe with properties to the EventLoop.
§Errors
Returns an error if the topic filter is invalid or if the request cannot be queued immediately on the event loop.
Sourcepub fn try_subscribe_with_properties_tracked<S: Into<String>>(
&self,
topic: S,
qos: QoS,
properties: SubscribeProperties,
) -> Result<RequestNotice, ClientError>
pub fn try_subscribe_with_properties_tracked<S: Into<String>>( &self, topic: S, qos: QoS, properties: SubscribeProperties, ) -> Result<RequestNotice, ClientError>
Attempts to send a tracked MQTT Subscribe with properties to the EventLoop.
§Errors
Returns an error if the topic filter is invalid or if the request cannot be queued immediately on the event loop.
Sourcepub fn try_subscribe<S: Into<String>>(
&self,
topic: S,
qos: QoS,
) -> Result<(), ClientError>
pub fn try_subscribe<S: Into<String>>( &self, topic: S, qos: QoS, ) -> Result<(), ClientError>
Attempts to send a MQTT Subscribe to the EventLoop.
§Errors
Returns an error if the topic filter is invalid or if the request cannot be queued immediately on the event loop.
Sourcepub fn try_subscribe_tracked<S: Into<String>>(
&self,
topic: S,
qos: QoS,
) -> Result<RequestNotice, ClientError>
pub fn try_subscribe_tracked<S: Into<String>>( &self, topic: S, qos: QoS, ) -> Result<RequestNotice, ClientError>
Attempts to send a tracked MQTT Subscribe to the EventLoop.
§Errors
Returns an error if the topic filter is invalid or if the request cannot be queued immediately on the event loop.
Sourcepub async fn subscribe_many_with_properties<T>(
&self,
topics: T,
properties: SubscribeProperties,
) -> Result<(), ClientError>where
T: IntoIterator<Item = Filter>,
pub async fn subscribe_many_with_properties<T>(
&self,
topics: T,
properties: SubscribeProperties,
) -> Result<(), ClientError>where
T: IntoIterator<Item = Filter>,
Sends a MQTT Subscribe for multiple topics with properties to the EventLoop.
§Errors
Returns an error if the filter list is invalid or if the request cannot be queued on the event loop.
Sourcepub async fn subscribe_many_with_properties_tracked<T>(
&self,
topics: T,
properties: SubscribeProperties,
) -> Result<RequestNotice, ClientError>where
T: IntoIterator<Item = Filter>,
pub async fn subscribe_many_with_properties_tracked<T>(
&self,
topics: T,
properties: SubscribeProperties,
) -> Result<RequestNotice, ClientError>where
T: IntoIterator<Item = Filter>,
Sends a tracked MQTT Subscribe for multiple topics with properties to the EventLoop.
§Errors
Returns an error if the filter list is invalid or if the request cannot be queued on the event loop.
Sourcepub async fn subscribe_many<T>(&self, topics: T) -> Result<(), ClientError>where
T: IntoIterator<Item = Filter>,
pub async fn subscribe_many<T>(&self, topics: T) -> Result<(), ClientError>where
T: IntoIterator<Item = Filter>,
Sends a MQTT Subscribe for multiple topics to the EventLoop.
§Errors
Returns an error if the filter list is invalid or if the request cannot be queued on the event loop.
Sourcepub async fn subscribe_many_tracked<T>(
&self,
topics: T,
) -> Result<RequestNotice, ClientError>where
T: IntoIterator<Item = Filter>,
pub async fn subscribe_many_tracked<T>(
&self,
topics: T,
) -> Result<RequestNotice, ClientError>where
T: IntoIterator<Item = Filter>,
Sends a tracked MQTT Subscribe for multiple topics to the EventLoop.
§Errors
Returns an error if the filter list is invalid or if the request cannot be queued on the event loop.
Sourcepub fn try_subscribe_many_with_properties<T>(
&self,
topics: T,
properties: SubscribeProperties,
) -> Result<(), ClientError>where
T: IntoIterator<Item = Filter>,
pub fn try_subscribe_many_with_properties<T>(
&self,
topics: T,
properties: SubscribeProperties,
) -> Result<(), ClientError>where
T: IntoIterator<Item = Filter>,
Attempts to send a MQTT Subscribe for multiple topics with properties to the EventLoop.
§Errors
Returns an error if the filter list is invalid or if the request cannot be queued immediately on the event loop.
Sourcepub fn try_subscribe_many_with_properties_tracked<T>(
&self,
topics: T,
properties: SubscribeProperties,
) -> Result<RequestNotice, ClientError>where
T: IntoIterator<Item = Filter>,
pub fn try_subscribe_many_with_properties_tracked<T>(
&self,
topics: T,
properties: SubscribeProperties,
) -> Result<RequestNotice, ClientError>where
T: IntoIterator<Item = Filter>,
Attempts to send a tracked MQTT Subscribe for multiple topics with properties to the EventLoop.
§Errors
Returns an error if the filter list is invalid or if the request cannot be queued immediately on the event loop.
Sourcepub fn try_subscribe_many<T>(&self, topics: T) -> Result<(), ClientError>where
T: IntoIterator<Item = Filter>,
pub fn try_subscribe_many<T>(&self, topics: T) -> Result<(), ClientError>where
T: IntoIterator<Item = Filter>,
Attempts to send a MQTT Subscribe for multiple topics to the EventLoop.
§Errors
Returns an error if the filter list is invalid or if the request cannot be queued immediately on the event loop.
Sourcepub fn try_subscribe_many_tracked<T>(
&self,
topics: T,
) -> Result<RequestNotice, ClientError>where
T: IntoIterator<Item = Filter>,
pub fn try_subscribe_many_tracked<T>(
&self,
topics: T,
) -> Result<RequestNotice, ClientError>where
T: IntoIterator<Item = Filter>,
Attempts to send a tracked MQTT Subscribe for multiple topics to the EventLoop.
§Errors
Returns an error if the filter list is invalid or if the request cannot be queued immediately on the event loop.
Sourcepub async fn unsubscribe_with_properties<S: Into<String>>(
&self,
topic: S,
properties: UnsubscribeProperties,
) -> Result<(), ClientError>
pub async fn unsubscribe_with_properties<S: Into<String>>( &self, topic: S, properties: UnsubscribeProperties, ) -> Result<(), ClientError>
Sends a MQTT Unsubscribe with properties to the EventLoop.
§Errors
Returns an error if the request cannot be queued on the event loop.
Sourcepub async fn unsubscribe_with_properties_tracked<S: Into<String>>(
&self,
topic: S,
properties: UnsubscribeProperties,
) -> Result<RequestNotice, ClientError>
pub async fn unsubscribe_with_properties_tracked<S: Into<String>>( &self, topic: S, properties: UnsubscribeProperties, ) -> Result<RequestNotice, ClientError>
Sends a tracked MQTT Unsubscribe with properties to the EventLoop.
§Errors
Returns an error if the request cannot be queued on the event loop.
Sourcepub async fn unsubscribe<S: Into<String>>(
&self,
topic: S,
) -> Result<(), ClientError>
pub async fn unsubscribe<S: Into<String>>( &self, topic: S, ) -> Result<(), ClientError>
Sends a MQTT Unsubscribe to the EventLoop.
§Errors
Returns an error if the request cannot be queued on the event loop.
Sourcepub async fn unsubscribe_tracked<S: Into<String>>(
&self,
topic: S,
) -> Result<RequestNotice, ClientError>
pub async fn unsubscribe_tracked<S: Into<String>>( &self, topic: S, ) -> Result<RequestNotice, ClientError>
Sends a tracked MQTT Unsubscribe to the EventLoop.
§Errors
Returns an error if the request cannot be queued on the event loop.
Sourcepub fn try_unsubscribe_with_properties<S: Into<String>>(
&self,
topic: S,
properties: UnsubscribeProperties,
) -> Result<(), ClientError>
pub fn try_unsubscribe_with_properties<S: Into<String>>( &self, topic: S, properties: UnsubscribeProperties, ) -> Result<(), ClientError>
Attempts to send a MQTT Unsubscribe with properties to the EventLoop.
§Errors
Returns an error if the request cannot be queued immediately on the event loop.
Sourcepub fn try_unsubscribe_with_properties_tracked<S: Into<String>>(
&self,
topic: S,
properties: UnsubscribeProperties,
) -> Result<RequestNotice, ClientError>
pub fn try_unsubscribe_with_properties_tracked<S: Into<String>>( &self, topic: S, properties: UnsubscribeProperties, ) -> Result<RequestNotice, ClientError>
Attempts to send a tracked MQTT Unsubscribe with properties to the EventLoop.
§Errors
Returns an error if the request cannot be queued immediately on the event loop.
Sourcepub fn try_unsubscribe<S: Into<String>>(
&self,
topic: S,
) -> Result<(), ClientError>
pub fn try_unsubscribe<S: Into<String>>( &self, topic: S, ) -> Result<(), ClientError>
Attempts to send a MQTT Unsubscribe to the EventLoop.
§Errors
Returns an error if the request cannot be queued immediately on the event loop.
Sourcepub fn try_unsubscribe_tracked<S: Into<String>>(
&self,
topic: S,
) -> Result<RequestNotice, ClientError>
pub fn try_unsubscribe_tracked<S: Into<String>>( &self, topic: S, ) -> Result<RequestNotice, ClientError>
Attempts to send a tracked MQTT Unsubscribe to the EventLoop.
§Errors
Returns an error if the request cannot be queued immediately on the event loop.
Sourcepub async fn disconnect(&self) -> Result<(), ClientError>
pub async fn disconnect(&self) -> Result<(), ClientError>
Sends a MQTT disconnect to the EventLoop with default DisconnectReasonCode::NormalDisconnection
§Errors
Returns an error if the disconnect request cannot be queued on the event loop.
Sourcepub async fn disconnect_with_properties(
&self,
reason: DisconnectReasonCode,
properties: DisconnectProperties,
) -> Result<(), ClientError>
pub async fn disconnect_with_properties( &self, reason: DisconnectReasonCode, properties: DisconnectProperties, ) -> Result<(), ClientError>
Sends a MQTT disconnect to the EventLoop with properties.
§Errors
Returns an error if the disconnect request cannot be queued on the event loop.
Sourcepub fn try_disconnect(&self) -> Result<(), ClientError>
pub fn try_disconnect(&self) -> Result<(), ClientError>
Attempts to send a MQTT disconnect to the EventLoop with default DisconnectReasonCode::NormalDisconnection
§Errors
Returns an error if the disconnect request cannot be queued immediately on the event loop.
Sourcepub fn try_disconnect_with_properties(
&self,
reason: DisconnectReasonCode,
properties: DisconnectProperties,
) -> Result<(), ClientError>
pub fn try_disconnect_with_properties( &self, reason: DisconnectReasonCode, properties: DisconnectProperties, ) -> Result<(), ClientError>
Attempts to send a MQTT disconnect to the EventLoop with properties.
§Errors
Returns an error if the disconnect request cannot be queued immediately on the event loop.
Trait Implementations§
Source§impl Clone for AsyncClient
impl Clone for AsyncClient
Source§fn clone(&self) -> AsyncClient
fn clone(&self) -> AsyncClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more