Skip to main content

BinanceConnectionManager

Struct BinanceConnectionManager 

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

Manages multiple WebSocket connections for Binance to handle sharding and isolation.

Connections are organized by market type (Spot, Swap, Futures, Option) to ensure that each market type connects to the correct WebSocket endpoint.

Implementations§

Source§

impl BinanceConnectionManager

Source

pub fn new(urls: BinanceUrls, is_sandbox: bool) -> Self

Creates a new connection manager with the given URLs.

Source

pub fn production() -> Self

Creates a new connection manager for production environment.

Source

pub fn testnet() -> Self

Creates a new connection manager for testnet environment.

Source

pub fn get_ws_url(&self, market_type: MarketType) -> &str

Returns the WebSocket URL for the given market type.

§URL Routing
  • MarketType::Spotstream.binance.com (spot and margin trading)
  • MarketType::Futuresfstream.binance.com (Linear/USDT-margined contracts)
  • MarketType::Swapdstream.binance.com (Inverse/Coin-margined contracts)
  • MarketType::Optionnbstream.binance.com (European-style options)

Callers should select the MarketType based on the market’s linear/inverse flags:

  • market.linear == true → use MarketType::Futures
  • market.inverse == true → use MarketType::Swap
§Arguments
  • market_type - The market type to get the URL for
§Returns

The WebSocket URL for the specified market type.

Source

pub async fn get_public_connection( &self, market_type: MarketType, ) -> Result<Arc<BinanceWs>>

Gets or creates a public connection suitable for a new subscription.

Connections are lazily initialized on first subscription for each market type.

§Arguments
  • market_type - The market type for the connection
§Returns

An Arc to the WebSocket client for the specified market type.

Source

pub async fn get_private_connection( &self, market_type: MarketType, binance: &Arc<Binance>, ) -> Result<Arc<BinanceWs>>

Gets or creates the dedicated private connection for the given market type.

§Arguments
  • market_type - The market type for the connection
  • binance - Reference to the Binance instance for authentication
§Returns

An Arc to the authenticated WebSocket client.

Source

pub async fn active_shards_count(&self) -> usize

Returns the number of active public shards across all market types.

Source

pub async fn active_shards_count_for(&self, market_type: MarketType) -> usize

Returns the number of active public shards for a specific market type.

Source

pub async fn disconnect_all(&self) -> Result<()>

Disconnects all active connections across all market types.

Source

pub async fn disconnect_market(&self, market_type: MarketType) -> Result<()>

Disconnects all connections for a specific market type.

Source

pub fn is_connected(&self) -> bool

Checks if any connection is active (non-blocking).

Source

pub fn is_connected_for(&self, market_type: MarketType) -> bool

Checks if a connection is active for a specific market type (non-blocking).

Source

pub fn get_all_subscriptions(&self) -> Vec<String>

Returns a list of all active subscriptions across all connections.

Source

pub fn get_subscriptions_for(&self, market_type: MarketType) -> Vec<String>

Returns a list of active subscriptions for a specific market type.

Source

pub fn urls(&self) -> &BinanceUrls

Returns a reference to the URLs configuration.

Source

pub fn is_sandbox(&self) -> bool

Returns whether this manager is configured for sandbox/testnet.

Trait Implementations§

Source§

impl Debug for BinanceConnectionManager

Source§

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

Formats the value using the given formatter. 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> 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, 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