pub struct WebSocketConnection { /* private fields */ }Expand description
Represents an active WebSocket connection to Binance.
Implementations§
Source§impl WebSocketConnection
Represents a WebSocket connection to the Binance WebSocket API.
This struct encapsulates the WebSocket stream and provides methods for subscribing to
mini ticker streams, receiving messages, and closing the connection.
impl WebSocketConnection
Represents a WebSocket connection to the Binance WebSocket API. This struct encapsulates the WebSocket stream and provides methods for subscribing to mini ticker streams, receiving messages, and closing the connection.
Sourcepub fn new(ws_stream: WebSocketStream<MaybeTlsStream<TcpStream>>) -> Self
pub fn new(ws_stream: WebSocketStream<MaybeTlsStream<TcpStream>>) -> Self
Creates a new BinanceWebSocketConnection
Sourcepub async fn subscribe_mini_ticker_stream<K: AsRef<str>>(
&mut self,
id: i64,
tickers: &[K],
) -> Result<(), Error>
pub async fn subscribe_mini_ticker_stream<K: AsRef<str>>( &mut self, id: i64, tickers: &[K], ) -> Result<(), Error>
Subscribes to the mini ticker stream for the specified symbol IDs.
This method sends a subscription request to the Binance WebSocket API for the specified symbol IDs. Each symbol ID is transformed into a mini ticker stream identifier before being sent.
§Parameters
id: A unique identifier for the subscription request.tickers: A slice of symbol IDs to subscribe to.
§Errors
Returns a tungstenite::Error if the WebSocket subscription request fails.
Sourcepub async fn unsubscribe_mini_ticker_stream<K: AsRef<str>>(
&mut self,
id: i64,
tickers: &[K],
) -> Result<(), Error>
pub async fn unsubscribe_mini_ticker_stream<K: AsRef<str>>( &mut self, id: i64, tickers: &[K], ) -> Result<(), Error>
Unsubscribes from the mini ticker stream for the specified symbol IDs.
This method sends an unsubscription request to the Binance WebSocket API for the specified symbol IDs. Each symbol ID is transformed into a mini ticker stream identifier before being sent.
§Parameters
id: A unique identifier for the subscription request.tickers: A slice of symbol IDs to subscribe to.
§Errors
Returns a tungstenite::Error if the WebSocket unsubscription request fails.
Trait Implementations§
Source§impl AssetInfoProvider for WebSocketConnection
impl AssetInfoProvider for WebSocketConnection
Source§fn subscribe<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<(), Self::SubscriptionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn subscribe<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<(), Self::SubscriptionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Subscribes to asset information updates for the given list of asset IDs.
This method sends a subscription request to the Binance WebSocket API for the specified asset IDs. Each asset ID is transformed into a mini ticker stream identifier before being sent.
§Errors
Returns an error if the WebSocket subscription request fails.
Source§fn next<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Option<Result<Data, Self::ListeningError>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn next<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Option<Result<Data, Self::ListeningError>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Retrieves the next asset information update from the WebSocket stream.
This method listens for incoming WebSocket messages and processes them into Data instances.
Supported message types include mini ticker updates and ping events.
§Errors
Returns a ListeningError if:
- The WebSocket message cannot be parsed
- The mini ticker data contains invalid values
Source§fn try_close<'async_trait>(
self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
fn try_close<'async_trait>(
self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
Attempts to close the WebSocket connection gracefully.
This method spawns a task to close the WebSocket connection asynchronously. It ensures that the connection is terminated without blocking the caller.
Source§type SubscriptionError = Error
type SubscriptionError = Error
Source§type ListeningError = ListeningError
type ListeningError = ListeningError
Auto Trait Implementations§
impl !Freeze for WebSocketConnection
impl !RefUnwindSafe for WebSocketConnection
impl Send for WebSocketConnection
impl Sync for WebSocketConnection
impl Unpin for WebSocketConnection
impl UnsafeUnpin for WebSocketConnection
impl !UnwindSafe for WebSocketConnection
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request