Skip to main content

WebSocketConfigBuilder

Struct WebSocketConfigBuilder 

Source
pub struct WebSocketConfigBuilder<S: State = Empty> { /* private fields */ }
Expand description

Use builder syntax to set the inputs and finish with build_inner().

Implementations§

Source§

impl<S: State> WebSocketConfigBuilder<S>

Source

pub fn url(self, value: String) -> WebSocketConfigBuilder<SetUrl<S>>
where S::Url: IsUnset,

Required.

The URL to connect to.

Source

pub fn headers( self, value: Vec<(String, String)>, ) -> WebSocketConfigBuilder<SetHeaders<S>>
where S::Headers: IsUnset,

Optional (Some / Option setters). Default: <Vec<(String, String)> as Default>::default().

The default headers.

Source

pub fn maybe_headers( self, value: Option<Vec<(String, String)>>, ) -> WebSocketConfigBuilder<SetHeaders<S>>
where S::Headers: IsUnset,

Optional (Some / Option setters). Default: <Vec<(String, String)> as Default>::default().

The default headers.

Source

pub fn heartbeat_interval_secs( self, value: u64, ) -> WebSocketConfigBuilder<SetHeartbeatIntervalSecs<S>>
where S::HeartbeatIntervalSecs: IsUnset,

Optional (Some / Option setters). The optional heartbeat interval (seconds).

Each timing field carries the coarsest unit that expresses every legitimate value, and quantities compared against each other share a unit: this and Self::heartbeat_timeout_secs are bounded below by whole-second cadences, while reconnect delays and jitter have real sub-second values and stay in milliseconds.

Source

pub fn maybe_heartbeat_interval_secs( self, value: Option<u64>, ) -> WebSocketConfigBuilder<SetHeartbeatIntervalSecs<S>>
where S::HeartbeatIntervalSecs: IsUnset,

Optional (Some / Option setters). The optional heartbeat interval (seconds).

Each timing field carries the coarsest unit that expresses every legitimate value, and quantities compared against each other share a unit: this and Self::heartbeat_timeout_secs are bounded below by whole-second cadences, while reconnect delays and jitter have real sub-second values and stay in milliseconds.

Source

pub fn heartbeat_payload( self, value: String, ) -> WebSocketConfigBuilder<SetHeartbeatPayload<S>>
where S::HeartbeatPayload: IsUnset,

Optional (Some / Option setters). The optional heartbeat payload sent as a text frame.

When None, the heartbeat is an empty Ping control frame instead. A venue that counts only an application-level keepalive needs the text form; the two are not interchangeable.

Source

pub fn maybe_heartbeat_payload( self, value: Option<String>, ) -> WebSocketConfigBuilder<SetHeartbeatPayload<S>>
where S::HeartbeatPayload: IsUnset,

Optional (Some / Option setters). The optional heartbeat payload sent as a text frame.

When None, the heartbeat is an empty Ping control frame instead. A venue that counts only an application-level keepalive needs the text form; the two are not interchangeable.

Source

pub fn connect_timeout_ms( self, value: u64, ) -> WebSocketConfigBuilder<SetConnectTimeoutMs<S>>
where S::ConnectTimeoutMs: IsUnset,

Optional (Some / Option setters). The timeout (milliseconds) for establishing a usable connection. Defaults to 10 seconds.

Bounds three things: the initial connection attempt, each reconnect attempt, and how long a send waits for the client to become active again. A short value therefore makes sends give up early during a reconnect as well as failing a connection attempt faster; keep it above the reconnect backoff.

Only applies to handler mode and must be non-zero when set. Stream mode ignores this field and bounds its connection attempt at 10 seconds.

Source

pub fn maybe_connect_timeout_ms( self, value: Option<u64>, ) -> WebSocketConfigBuilder<SetConnectTimeoutMs<S>>
where S::ConnectTimeoutMs: IsUnset,

Optional (Some / Option setters). The timeout (milliseconds) for establishing a usable connection. Defaults to 10 seconds.

Bounds three things: the initial connection attempt, each reconnect attempt, and how long a send waits for the client to become active again. A short value therefore makes sends give up early during a reconnect as well as failing a connection attempt faster; keep it above the reconnect backoff.

Only applies to handler mode and must be non-zero when set. Stream mode ignores this field and bounds its connection attempt at 10 seconds.

Source

pub fn reconnect_delay_initial_ms( self, value: u64, ) -> WebSocketConfigBuilder<SetReconnectDelayInitialMs<S>>
where S::ReconnectDelayInitialMs: IsUnset,

Optional (Some / Option setters). The initial reconnection delay (milliseconds) for reconnects.

Only applies to handler mode. Stream mode ignores this field.

Source

pub fn maybe_reconnect_delay_initial_ms( self, value: Option<u64>, ) -> WebSocketConfigBuilder<SetReconnectDelayInitialMs<S>>
where S::ReconnectDelayInitialMs: IsUnset,

Optional (Some / Option setters). The initial reconnection delay (milliseconds) for reconnects.

Only applies to handler mode. Stream mode ignores this field.

Source

pub fn reconnect_delay_max_ms( self, value: u64, ) -> WebSocketConfigBuilder<SetReconnectDelayMaxMs<S>>
where S::ReconnectDelayMaxMs: IsUnset,

Optional (Some / Option setters). The maximum reconnect delay (milliseconds) for exponential backoff.

Only applies to handler mode. Stream mode ignores this field.

Source

pub fn maybe_reconnect_delay_max_ms( self, value: Option<u64>, ) -> WebSocketConfigBuilder<SetReconnectDelayMaxMs<S>>
where S::ReconnectDelayMaxMs: IsUnset,

Optional (Some / Option setters). The maximum reconnect delay (milliseconds) for exponential backoff.

Only applies to handler mode. Stream mode ignores this field.

Source

pub fn reconnect_backoff_factor( self, value: f64, ) -> WebSocketConfigBuilder<SetReconnectBackoffFactor<S>>
where S::ReconnectBackoffFactor: IsUnset,

Optional (Some / Option setters). The exponential backoff factor for reconnection delays.

Only applies to handler mode. Stream mode ignores this field.

Source

pub fn maybe_reconnect_backoff_factor( self, value: Option<f64>, ) -> WebSocketConfigBuilder<SetReconnectBackoffFactor<S>>
where S::ReconnectBackoffFactor: IsUnset,

Optional (Some / Option setters). The exponential backoff factor for reconnection delays.

Only applies to handler mode. Stream mode ignores this field.

Source

pub fn reconnect_jitter_ms( self, value: u64, ) -> WebSocketConfigBuilder<SetReconnectJitterMs<S>>
where S::ReconnectJitterMs: IsUnset,

Optional (Some / Option setters). The maximum jitter (milliseconds) added to reconnection delays.

Only applies to handler mode. Stream mode ignores this field.

Source

pub fn maybe_reconnect_jitter_ms( self, value: Option<u64>, ) -> WebSocketConfigBuilder<SetReconnectJitterMs<S>>
where S::ReconnectJitterMs: IsUnset,

Optional (Some / Option setters). The maximum jitter (milliseconds) added to reconnection delays.

Only applies to handler mode. Stream mode ignores this field.

Source

pub fn reconnect_max_attempts( self, value: u32, ) -> WebSocketConfigBuilder<SetReconnectMaxAttempts<S>>
where S::ReconnectMaxAttempts: IsUnset,

Optional (Some / Option setters). The maximum number of reconnection attempts before giving up.

Only applies to handler mode. Stream mode ignores this field.

  • None: Unlimited reconnection attempts (default, recommended for production).
  • Some(n): Transitions to CLOSED once n consecutive reconnect attempts have either failed or established connections active for less than 10 seconds.
Source

pub fn maybe_reconnect_max_attempts( self, value: Option<u32>, ) -> WebSocketConfigBuilder<SetReconnectMaxAttempts<S>>
where S::ReconnectMaxAttempts: IsUnset,

Optional (Some / Option setters). The maximum number of reconnection attempts before giving up.

Only applies to handler mode. Stream mode ignores this field.

  • None: Unlimited reconnection attempts (default, recommended for production).
  • Some(n): Transitions to CLOSED once n consecutive reconnect attempts have either failed or established connections active for less than 10 seconds.
Source

pub fn heartbeat_timeout_secs( self, value: u64, ) -> WebSocketConfigBuilder<SetHeartbeatTimeoutSecs<S>>
where S::HeartbeatTimeoutSecs: IsUnset,

Optional (Some / Option setters). The dead-peer timeout (seconds) for the read task.

Seconds rather than milliseconds because this is a multiple of Self::heartbeat_interval_secs: it can never sensibly sit below one heartbeat cycle.

When set, the read task stops and triggers reconnection if no inbound frame of any kind arrives within this duration. Ping and Pong both refresh it, so this detects a peer that has gone silent rather than one whose feed is merely quiet. Set it above Self::heartbeat_interval_secs so a healthy connection cannot trip it; three intervals is the usual choice, tolerating two lost replies.

None derives three heartbeat intervals when a heartbeat is configured, and disables detection otherwise. Some(0) is rejected.

Only applies to handler mode; stream mode ignores this field.

Source

pub fn maybe_heartbeat_timeout_secs( self, value: Option<u64>, ) -> WebSocketConfigBuilder<SetHeartbeatTimeoutSecs<S>>
where S::HeartbeatTimeoutSecs: IsUnset,

Optional (Some / Option setters). The dead-peer timeout (seconds) for the read task.

Seconds rather than milliseconds because this is a multiple of Self::heartbeat_interval_secs: it can never sensibly sit below one heartbeat cycle.

When set, the read task stops and triggers reconnection if no inbound frame of any kind arrives within this duration. Ping and Pong both refresh it, so this detects a peer that has gone silent rather than one whose feed is merely quiet. Set it above Self::heartbeat_interval_secs so a healthy connection cannot trip it; three intervals is the usual choice, tolerating two lost replies.

None derives three heartbeat intervals when a heartbeat is configured, and disables detection otherwise. Some(0) is rejected.

Only applies to handler mode; stream mode ignores this field.

Source

pub fn idle_timeout_ms( self, value: u64, ) -> WebSocketConfigBuilder<SetIdleTimeoutMs<S>>
where S::IdleTimeoutMs: IsUnset,

Optional (Some / Option setters). The idle timeout (milliseconds) for the read task.

When set, the read task stops and triggers reconnection if no Text or Binary frame arrives within this duration. Ping and Pong deliberately do not refresh it, so this detects a feed that has stopped flowing even while the transport is provably alive. Contrast Self::heartbeat_timeout_secs, which any inbound frame refreshes.

None disables this timeout. Some(0) is rejected. Adapters that expose a required integer map 0 to None rather than passing it through.

The raw-socket client has no equivalent: TCP carries no control frames, so there is no transport-level way to tell keepalive traffic from data.

A venue answering the keepalive with a text payload refreshes this timer exactly like real data does, so on those venues the window must sit below Self::heartbeat_interval_secs to mean anything. Prefer Self::heartbeat_timeout_secs unless the venue guarantees periodic inbound data.

Only applies to handler mode; stream mode ignores this field.

Source

pub fn maybe_idle_timeout_ms( self, value: Option<u64>, ) -> WebSocketConfigBuilder<SetIdleTimeoutMs<S>>
where S::IdleTimeoutMs: IsUnset,

Optional (Some / Option setters). The idle timeout (milliseconds) for the read task.

When set, the read task stops and triggers reconnection if no Text or Binary frame arrives within this duration. Ping and Pong deliberately do not refresh it, so this detects a feed that has stopped flowing even while the transport is provably alive. Contrast Self::heartbeat_timeout_secs, which any inbound frame refreshes.

None disables this timeout. Some(0) is rejected. Adapters that expose a required integer map 0 to None rather than passing it through.

The raw-socket client has no equivalent: TCP carries no control frames, so there is no transport-level way to tell keepalive traffic from data.

A venue answering the keepalive with a text payload refreshes this timer exactly like real data does, so on those venues the window must sit below Self::heartbeat_interval_secs to mean anything. Prefer Self::heartbeat_timeout_secs unless the venue guarantees periodic inbound data.

Only applies to handler mode; stream mode ignores this field.

Source

pub fn backend( self, value: TransportBackend, ) -> WebSocketConfigBuilder<SetBackend<S>>
where S::Backend: IsUnset,

Optional (Some / Option setters). Default: <TransportBackend as Default>::default().

The transport backend to use for the WebSocket connection.

Defaults to TransportBackend::Sockudo when the transport-sockudo Cargo feature is enabled (the default), otherwise TransportBackend::Tungstenite. When the feature is disabled, connect_with_server returns an error if Sockudo is selected. Both backends pass headers into the HTTP upgrade request and both honour Self::proxy_url.

Source

pub fn maybe_backend( self, value: Option<TransportBackend>, ) -> WebSocketConfigBuilder<SetBackend<S>>
where S::Backend: IsUnset,

Optional (Some / Option setters). Default: <TransportBackend as Default>::default().

The transport backend to use for the WebSocket connection.

Defaults to TransportBackend::Sockudo when the transport-sockudo Cargo feature is enabled (the default), otherwise TransportBackend::Tungstenite. When the feature is disabled, connect_with_server returns an error if Sockudo is selected. Both backends pass headers into the HTTP upgrade request and both honour Self::proxy_url.

Source

pub fn proxy_url(self, value: String) -> WebSocketConfigBuilder<SetProxyUrl<S>>
where S::ProxyUrl: IsUnset,

Optional (Some / Option setters). Optional forward proxy URL for the WebSocket connection.

Routes the connection through an HTTP CONNECT tunnel. Accepts http:// and https:// schemes; SOCKS schemes are not yet supported.

Source

pub fn maybe_proxy_url( self, value: Option<String>, ) -> WebSocketConfigBuilder<SetProxyUrl<S>>
where S::ProxyUrl: IsUnset,

Optional (Some / Option setters). Optional forward proxy URL for the WebSocket connection.

Routes the connection through an HTTP CONNECT tunnel. Accepts http:// and https:// schemes; SOCKS schemes are not yet supported.

Source§

impl<S: IsComplete> WebSocketConfigBuilder<S>

Source

pub fn build(self) -> NetworkConfigResult<WebSocketConfig>

Validates and builds the WebSocketConfig.

§Errors

Returns a NetworkConfigError if any field fails validation (see WebSocketConfig::validate).

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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.

§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

impl<T> Ungil for T
where T: Send,

§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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