Skip to main content

WebsocketStreams

Struct WebsocketStreams 

Source
pub struct WebsocketStreams { /* private fields */ }

Implementations§

Source§

impl WebsocketStreams

Source

pub fn subscribe_on_ws_events<F>(&self, callback: F) -> Subscription
where F: FnMut(WebsocketEvent) + Send + 'static,

Subscribes to WebSocket events with a provided callback function.

§Arguments
  • callback - A mutable function that takes a WebsocketEvent and is Send and 'static.
§Returns

A Subscription that can be used to manage the event subscription.

§Examples

let subscription = websocket_streams.subscribe_on_ws_events(|event| { // Handle WebSocket event });

Source

pub fn unsubscribe_from_ws_events(&self, subscription: Subscription)

Unsubscribes from WebSocket events for a given Subscription.

§Arguments
  • subscription - The Subscription to unsubscribe from WebSocket events.
§Examples

let subscription = websocket_streams.subscribe_on_ws_events(|event| { // Handle WebSocket event }); websocket_streams.unsubscribe_from_ws_events(subscription);

Source

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

Disconnects the WebSocket connection.

§Returns

A Result indicating whether the disconnection was successful. Returns an error if the disconnection fails.

§Errors

Returns an anyhow::Error if the connection fails.

§Examples

let websocket_streams = WebSocketStreams::new(…); websocket_streams.disconnect().await?;

Source

pub async fn is_connected(&self) -> bool

Checks if the WebSocket connection is currently active.

§Returns

A bool indicating whether the WebSocket connection is established and connected.

§Examples

let is_active = websocket_streams.is_connected().await; if is_active { // WebSocket connection is active }

Source

pub async fn ping_server(&self)

Sends a ping to the WebSocket server to maintain the connection.

§Examples

websocket_streams.ping_server().await;

This method sends a ping request to the WebSocket server to keep the connection alive and check the server’s responsiveness.

Source

pub fn subscribe(&self, streams: Vec<String>, id: Option<String>)

Subscribes to specified WebSocket streams.

§Arguments
  • streams - A vector of stream names to subscribe to
  • id - An optional identifier for the subscription request
§Examples

websocket_streams.subscribe(vec![“btcusdt@trade".to_string()], None).await;

This method initiates an asynchronous subscription to the specified WebSocket streams. The subscription is performed in a separate task using spawn.

Source

pub fn unsubscribe(&self, streams: Vec<String>, id: Option<String>)

Unsubscribes from specified WebSocket streams.

§Arguments
  • streams - A vector of stream names to unsubscribe from
  • id - An optional identifier for the unsubscription request
§Examples

websocket_streams.unsubscribe(vec![“btcusdt@trade".to_string()], None).await;

This method initiates an asynchronous unsubscription from the specified WebSocket streams. The unsubscription is performed in a separate task using spawn.

Source

pub async fn is_subscribed(&self, stream: &str) -> bool

Checks if the current WebSocket stream is subscribed to a specific stream.

§Arguments
  • stream - The name of the stream to check for subscription
§Returns

A boolean indicating whether the stream is currently subscribed

§Examples

let is_subscribed = websocket_streams.is_subscribed("btcusdt@trade").await;

This method checks the subscription status of a specific WebSocket stream.

Source

pub async fn agg_trade( &self, params: AggTradeParams, ) -> Result<Arc<WebsocketStream<AggTradeResponse>>>

WebSocket Aggregate Trade Streams

The Aggregate Trade Streams push trade information that is aggregated for a single taker order.

§Arguments
§Returns

Arc<WebsocketStream<models::AggTradeResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn all_market_rolling_window_ticker( &self, params: AllMarketRollingWindowTickerParams, ) -> Result<Arc<WebsocketStream<Vec<AllMarketRollingWindowTickerResponseInner>>>>

WebSocket All Market Rolling Window Statistics Streams

Rolling window ticker statistics for all market symbols, computed over multiple windows. Note that only tickers that have changed will be present in the array.

§Arguments
§Returns

Arc<WebsocketStream<Vec<models::AllMarketRollingWindowTickerResponseInner>>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn all_mini_ticker( &self, params: AllMiniTickerParams, ) -> Result<Arc<WebsocketStream<Vec<AllMiniTickerResponseInner>>>>

WebSocket All Market Mini Tickers Stream

24hr rolling window mini-ticker statistics for all symbols that changed in an array. These are NOT the statistics of the UTC day, but a 24hr rolling window for the previous 24hrs. Note that only tickers that have changed will be present in the array.

§Arguments
§Returns

Arc<WebsocketStream<Vec<models::AllMiniTickerResponseInner>>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn avg_price( &self, params: AvgPriceParams, ) -> Result<Arc<WebsocketStream<AvgPriceResponse>>>

WebSocket Average Price

Average price streams push changes in the average price over a fixed time interval.

§Arguments
§Returns

Arc<WebsocketStream<models::AvgPriceResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn block_trade( &self, params: BlockTradeParams, ) -> Result<Arc<WebsocketStream<BlockTradeResponse>>>

WebSocket Block Trade Streams

§Arguments
§Returns

Arc<WebsocketStream<models::BlockTradeResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn book_ticker( &self, params: BookTickerParams, ) -> Result<Arc<WebsocketStream<BookTickerResponse>>>

WebSocket Individual Symbol Book Ticker Streams

Pushes any update to the best bid or ask’s price or quantity in real-time for a specified symbol. Multiple <symbol>@bookTicker streams can be subscribed to over one connection.

§Arguments
§Returns

Arc<WebsocketStream<models::BookTickerResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn diff_book_depth( &self, params: DiffBookDepthParams, ) -> Result<Arc<WebsocketStream<DiffBookDepthResponse>>>

WebSocket Diff. Depth Stream

Order book price and quantity depth updates used to locally manage an order book.

§Arguments
§Returns

Arc<WebsocketStream<models::DiffBookDepthResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn kline( &self, params: KlineParams, ) -> Result<Arc<WebsocketStream<KlineResponse>>>

WebSocket Kline/Candlestick Streams for UTC

The Kline/Candlestick Stream push updates to the current klines/candlestick every second in UTC+0 timezone

§Arguments
  • params: KlineParams The parameters for this operation.
§Returns

Arc<WebsocketStream<models::KlineResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn kline_offset( &self, params: KlineOffsetParams, ) -> Result<Arc<WebsocketStream<KlineOffsetResponse>>>

WebSocket Kline/Candlestick Streams with timezone offset

The Kline/Candlestick Stream push updates to the current klines/candlestick every second in UTC+8 timezone

§Arguments
§Returns

Arc<WebsocketStream<models::KlineOffsetResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn mini_ticker( &self, params: MiniTickerParams, ) -> Result<Arc<WebsocketStream<MiniTickerResponse>>>

WebSocket Individual Symbol Mini Ticker Stream

24hr rolling window mini-ticker statistics. These are NOT the statistics of the UTC day, but a 24hr rolling window for the previous 24hrs.

§Arguments
§Returns

Arc<WebsocketStream<models::MiniTickerResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn partial_book_depth( &self, params: PartialBookDepthParams, ) -> Result<Arc<WebsocketStream<PartialBookDepthResponse>>>

WebSocket Partial Book Depth Streams

Top <levels> bids and asks, pushed every second. Valid <levels> are 5, 10, or 20.

§Arguments
§Returns

Arc<WebsocketStream<models::PartialBookDepthResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn reference_price( &self, params: ReferencePriceParams, ) -> Result<Arc<WebsocketStream<ReferencePriceResponse>>>

WebSocket Reference Price Streams

§Arguments
§Returns

Arc<WebsocketStream<models::ReferencePriceResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn rolling_window_ticker( &self, params: RollingWindowTickerParams, ) -> Result<Arc<WebsocketStream<RollingWindowTickerResponse>>>

WebSocket Individual Symbol Rolling Window Statistics Streams

Rolling window ticker statistics for a single symbol, computed over multiple windows.

§Arguments
§Returns

Arc<WebsocketStream<models::RollingWindowTickerResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn ticker( &self, params: TickerParams, ) -> Result<Arc<WebsocketStream<TickerResponse>>>

WebSocket Individual Symbol Ticker Streams

24hr rolling window ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window for the previous 24hrs.

§Arguments
§Returns

Arc<WebsocketStream<models::TickerResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

Source

pub async fn trade( &self, params: TradeParams, ) -> Result<Arc<WebsocketStream<TradeResponse>>>

WebSocket Trade Streams

The Trade Streams push raw trade information; each trade has a unique buyer and seller.

§Arguments
  • params: TradeParams The parameters for this operation.
§Returns

Arc<WebsocketStream<models::TradeResponse>> on success.

§Errors

Returns an anyhow::Error if the stream request fails, if parameters are invalid, or if parsing the response fails.

For full API details, see the Binance API Documentation.

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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.

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

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

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