Skip to main content

BinanceFuturesWebSocketClient

Struct BinanceFuturesWebSocketClient 

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

Binance Futures WebSocket client for JSON market data streams.

Manages a pool of up to 20 connections, each supporting up to 200 streams. New connections are created automatically when subscribing exceeds the current connection’s stream limit. All connections feed into a single output stream, transparent to the data client.

Implementations§

Source§

impl BinanceFuturesWebSocketClient

Source

pub fn new( product_type: BinanceProductType, environment: BinanceEnvironment, api_key: Option<String>, api_secret: Option<String>, url_override: Option<String>, heartbeat: Option<u64>, transport_backend: TransportBackend, ) -> Result<Self>

Creates a new BinanceFuturesWebSocketClient instance.

§Errors

Returns an error if:

  • product_type is not a futures type (UsdM or CoinM).
  • Credential creation fails.
Source

pub const fn product_type(&self) -> BinanceProductType

Returns the product type (UsdM or CoinM).

Source

pub fn is_active(&self) -> bool

Returns whether any connection in the pool is active.

Source

pub fn is_closed(&self) -> bool

Returns whether all connections in the pool are closed.

Source

pub fn subscription_count(&self) -> usize

Returns the total number of confirmed subscriptions across all connections.

Source

pub async fn connect(&mut self) -> BinanceWsResult<()>

Connects the first WebSocket connection in the pool.

§Errors

Returns an error if connection fails.

Source

pub async fn close(&mut self) -> BinanceWsResult<()>

Closes all WebSocket connections in the pool.

§Errors

Returns an error if disconnect fails.

Source

pub async fn subscribe(&self, streams: Vec<String>) -> BinanceWsResult<()>

Subscribes to the specified streams.

Streams are distributed across pool connections. New connections are created automatically when existing ones reach the 200-stream limit, up to a maximum of 20 connections.

§Errors

Returns an error if the pool is exhausted or command delivery fails.

Source

pub async fn unsubscribe(&self, streams: Vec<String>) -> BinanceWsResult<()>

Unsubscribes from the specified streams.

§Errors

Returns an error if command delivery fails.

Source

pub fn stream( &self, ) -> impl Stream<Item = BinanceFuturesWsStreamsMessage> + 'static

Returns a stream of messages from all WebSocket connections.

This method can only be called once per connection lifecycle. Subsequent calls return an empty stream.

§Panics

Panics if the internal output receiver mutex is poisoned.

Source

pub fn cache_instruments(&self, instruments: &[InstrumentAny])

Bulk initialize the instrument cache.

Source

pub fn cache_instrument(&self, instrument: InstrumentAny)

Update a single instrument in the cache.

Source

pub fn instruments_cache(&self) -> Arc<AtomicMap<Ustr, InstrumentAny>>

Returns a shared reference to the instruments cache.

Source

pub fn get_instrument(&self, symbol: &str) -> Option<InstrumentAny>

Returns an instrument from the cache by raw symbol.

Trait Implementations§

Source§

impl Clone for BinanceFuturesWebSocketClient

Source§

fn clone(&self) -> BinanceFuturesWebSocketClient

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 BinanceFuturesWebSocketClient

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

§

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.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

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

§

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
§

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

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
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

§

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