Struct ntex_mqtt::v5::MqttServer

source ·
pub struct MqttServer<St, C, Cn, P> { /* private fields */ }
Expand description

Mqtt Server

Implementations§

source§

impl<St, C> MqttServer<St, C, DefaultControlService<St, C::Error>, DefaultPublishService<St, C::Error>>
where C: ServiceFactory<Handshake, Response = HandshakeAck<St>>, C::Error: Debug,

source

pub fn new<F>(handshake: F) -> Self

Create server factory and provide handshake service

source§

impl<St, C, Cn, P> MqttServer<St, C, Cn, P>
where St: 'static, C: ServiceFactory<Handshake, Response = HandshakeAck<St>> + 'static, C::Error: Debug, Cn: ServiceFactory<Control<C::Error>, Session<St>, Response = ControlAck> + 'static, P: ServiceFactory<Publish, Session<St>, Response = PublishAck> + 'static,

source

pub fn connect_timeout(self, timeout: Seconds) -> Self

Set client timeout for first Connect frame.

Defines a timeout for reading Connect frame. If a client does not transmit the entire frame within this time, the connection is terminated with Mqtt::Handshake(HandshakeError::Timeout) error.

By default, connect timeout is disabled.

source

pub fn disconnect_timeout(self, val: Seconds) -> Self

Set server connection disconnect timeout.

Defines a timeout for disconnect connection. If a disconnect procedure does not complete within this time, the connection get dropped.

To disable timeout set value to 0.

By default disconnect timeout is set to 3 seconds.

source

pub fn frame_read_rate( self, timeout: Seconds, max_timeout: Seconds, rate: u16 ) -> Self

Set read rate parameters for single frame.

Set read timeout, max timeout and rate for reading payload. If the client sends rate amount of data within timeout period of time, extend timeout by timeout seconds. But no more than max_timeout timeout.

By default frame read rate is disabled.

source

pub fn max_size(self, size: u32) -> Self

Set max inbound frame size.

If max size is set to 0, size is unlimited. By default max size is set to 0

source

pub fn receive_max(self, val: u16) -> Self

Set receive max

Number of in-flight publish packets. By default receive max is set to 15 packets. To disable timeout set value to 0.

source

pub fn max_topic_alias(self, val: u16) -> Self

Number of topic aliases.

By default value is set to 32

source

pub fn max_qos(self, qos: QoS) -> Self

Set server max qos setting.

By default max qos is not set.

source

pub fn max_inflight_size(self, val: usize) -> Self

Total size of in-flight messages.

By default total in-flight size is set to 64Kb

source

pub fn handle_qos_after_disconnect(self, max_qos: Option<QoS>) -> Self

Handle max received QoS messages after client disconnect.

By default, messages received before dispatched to the publish service will be dropped if the client disconnect immediately.

If this option is set to Some(QoS::AtMostOnce), only the QoS 0 messages received will always be handled by the server’s publish service no matter if the client is disconnected or not.

If this option is set to Some(QoS::AtLeastOnce), only the QoS 0 and QoS 1 messages received will always be handled by the server’s publish service no matter if the client is disconnected or not. The QoS 2 messages will be dropped if the client is disconnected before the server dispatches them to the publish service.

If this option is set to Some(QoS::ExactlyOnce), all the messages received will always be handled by the server’s publish service no matter if the client is disconnected or not.

By default handle-qos-after-disconnect is set to None

source

pub fn control<F, Srv>(self, service: F) -> MqttServer<St, C, Srv, P>
where F: IntoServiceFactory<Srv, Control<C::Error>, Session<St>>, Srv: ServiceFactory<Control<C::Error>, Session<St>, Response = ControlAck> + 'static, C::Error: From<Srv::Error> + From<Srv::InitError>,

Service to handle control packets

All control packets are processed sequentially, max number of buffered control packets is 16.

source

pub fn publish<F, Srv>(self, publish: F) -> MqttServer<St, C, Cn, Srv>
where F: IntoServiceFactory<Srv, Publish, Session<St>>, C::Error: From<Srv::Error> + From<Srv::InitError>, Srv: ServiceFactory<Publish, Session<St>, Response = PublishAck> + 'static, Srv::Error: Debug, PublishAck: TryFrom<Srv::Error, Error = C::Error>,

Set service to handle publish packets and create mqtt server factory

source§

impl<St, C, Cn, P> MqttServer<St, C, Cn, P>
where St: 'static, C: ServiceFactory<Handshake, Response = HandshakeAck<St>> + 'static, C::Error: From<Cn::Error> + From<Cn::InitError> + From<P::Error> + From<P::InitError> + Debug, Cn: ServiceFactory<Control<C::Error>, Session<St>, Response = ControlAck> + 'static, P: ServiceFactory<Publish, Session<St>, Response = PublishAck> + 'static, P::Error: Debug, PublishAck: TryFrom<P::Error, Error = C::Error>,

source

pub fn finish( self ) -> MqttServer<Session<St>, impl ServiceFactory<IoBoxed, Response = (IoBoxed, Rc<MqttShared>, Session<St>, Seconds), Error = MqttError<C::Error>, InitError = C::InitError>, impl ServiceFactory<DispatchItem<Rc<MqttShared>>, Session<St>, Response = Option<Packet>, Error = MqttError<C::Error>, InitError = MqttError<C::Error>>, Rc<MqttShared>>

Finish server configuration and create mqtt server factory

Auto Trait Implementations§

§

impl<St, C, Cn, P> Freeze for MqttServer<St, C, Cn, P>
where C: Freeze, Cn: Freeze, P: Freeze,

§

impl<St, C, Cn, P> !RefUnwindSafe for MqttServer<St, C, Cn, P>

§

impl<St, C, Cn, P> !Send for MqttServer<St, C, Cn, P>

§

impl<St, C, Cn, P> !Sync for MqttServer<St, C, Cn, P>

§

impl<St, C, Cn, P> Unpin for MqttServer<St, C, Cn, P>
where C: Unpin, Cn: Unpin, P: Unpin, St: Unpin,

§

impl<St, C, Cn, P> !UnwindSafe for MqttServer<St, C, Cn, P>

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more