WsConfig

Struct WsConfig 

Source
pub struct WsConfig {
    pub url: String,
    pub connect_timeout: u64,
    pub ping_interval: u64,
    pub reconnect_interval: u64,
    pub max_reconnect_attempts: u32,
    pub auto_reconnect: bool,
    pub enable_compression: bool,
    pub pong_timeout: u64,
    pub backoff_config: BackoffConfig,
    pub max_subscriptions: usize,
    pub shutdown_timeout: u64,
}
Expand description

WebSocket connection configuration.

This struct contains all configuration options for WebSocket connections, including connection timeouts, reconnection behavior, and resource limits.

§Example

use ccxt_core::ws_client::{WsConfig, BackoffConfig};
use std::time::Duration;

let config = WsConfig {
    url: "wss://stream.example.com/ws".to_string(),
    max_subscriptions: 50,
    backoff_config: BackoffConfig {
        base_delay: Duration::from_millis(500),
        max_delay: Duration::from_secs(30),
        ..Default::default()
    },
    ..Default::default()
};

Fields§

§url: String

WebSocket server URL

§connect_timeout: u64

Connection timeout in milliseconds

§ping_interval: u64

Ping interval in milliseconds

§reconnect_interval: u64

Reconnection delay in milliseconds (legacy, use backoff_config for exponential backoff)

§max_reconnect_attempts: u32

Maximum reconnection attempts before giving up

§auto_reconnect: bool

Enable automatic reconnection on disconnect

§enable_compression: bool

Enable message compression

§pong_timeout: u64

Pong timeout in milliseconds

Connection is considered dead if no pong received within this duration.

§backoff_config: BackoffConfig

Exponential backoff configuration for reconnection.

This configuration controls how retry delays are calculated during reconnection attempts. Uses exponential backoff with jitter to prevent thundering herd effects.

§Default

  • base_delay: 1 second
  • max_delay: 60 seconds
  • jitter_factor: 0.25 (25%)
  • multiplier: 2.0
§max_subscriptions: usize

Maximum number of subscriptions allowed.

When this limit is reached, new subscription attempts will fail with Error::ResourceExhausted. This prevents resource exhaustion from too many concurrent subscriptions.

§Default

100 subscriptions (see DEFAULT_MAX_SUBSCRIPTIONS)

§shutdown_timeout: u64

Shutdown timeout in milliseconds.

Maximum time to wait for pending operations to complete during graceful shutdown. After this timeout, the shutdown will proceed regardless of pending operations.

§Default

5000 milliseconds (5 seconds)

Trait Implementations§

Source§

impl Clone for WsConfig

Source§

fn clone(&self) -> WsConfig

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

impl Debug for WsConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for WsConfig

Source§

fn default() -> WsConfig

Returns the “default value” for a type. 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> 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: 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
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

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