Skip to main content

Client

Struct Client 

Source
pub struct Client { /* private fields */ }
Expand description

A synchronous client, communicates with MQTT EventLoop.

This is cloneable and can be used to synchronously publish, subscribe through the EventLoop/Connection, which is to be polled in parallel by iterating over the object returned by Connection.iter() in a separate thread.

NOTE: The EventLoop/Connection must be regularly polled(.next() in case of Connection) in order to send, receive and process packets from the broker, i.e. move ahead.

An asynchronous channel handle can also be extracted if necessary.

Implementations§

Source§

impl Client

Source

pub fn new(options: MqttOptions, cap: usize) -> (Self, Connection)

Create a new Client

cap specifies the capacity of the bounded async channel.

§Panics

Panics if the current-thread Tokio runtime cannot be created.

Source

pub const fn from_sender(request_tx: Sender<Request>) -> Self

Create a new Client from a channel Sender.

This is mostly useful for creating a test instance where you can listen on the corresponding receiver.

Source

pub fn publish_with_properties<T, P>( &self, topic: T, qos: QoS, retain: bool, payload: P, properties: PublishProperties, ) -> Result<(), ClientError>
where T: Into<PublishTopic>, P: Into<Bytes>,

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.

Source

pub fn publish<T, P>( &self, topic: T, qos: QoS, retain: bool, payload: P, ) -> Result<(), ClientError>
where T: Into<PublishTopic>, P: Into<Bytes>,

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.

Source

pub fn try_publish_with_properties<T, P>( &self, topic: T, qos: QoS, retain: bool, payload: P, properties: PublishProperties, ) -> Result<(), ClientError>
where T: Into<PublishTopic>, P: Into<Bytes>,

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.

Source

pub fn try_publish<T, P>( &self, topic: T, qos: QoS, retain: bool, payload: P, ) -> Result<(), ClientError>
where T: Into<PublishTopic>, P: Into<Bytes>,

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.

Source

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.

Source

pub fn manual_ack(&self, ack: ManualAck) -> Result<(), ClientError>

Sends a prepared MQTT PubAck/PubRec to the EventLoop.

§Errors

Returns an error if the acknowledgement cannot be queued on the event loop.

Source

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.

Source

pub 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.

Source

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.

Source

pub 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.

Source

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.

Source

pub 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.

Source

pub 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.

Source

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.

Source

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.

Source

pub 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.

Source

pub 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.

Source

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.

Source

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.

Source

pub 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.

Source

pub 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.

Source

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.

Source

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.

Source

pub fn disconnect(&self) -> Result<(), ClientError>

Sends a MQTT disconnect to the EventLoop.

§Errors

Returns an error if the disconnect request cannot be queued on the event loop.

Source

pub 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.

Source

pub fn try_disconnect(&self) -> Result<(), ClientError>

Attempts to send a MQTT disconnect to the EventLoop.

§Errors

Returns an error if the disconnect request cannot be queued immediately on the event loop.

Source

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 Client

Source§

fn clone(&self) -> Client

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V