pub struct WebSocketConnection { /* private fields */ }Expand description
A connection to the Coinbase WebSocket API.
Implementations§
Source§impl WebSocketConnection
Represents a WebSocket connection to the Coinbase API.
This struct provides methods for subscribing and unsubscribing to channels,
receiving messages, and closing the connection.
impl WebSocketConnection
Represents a WebSocket connection to the Coinbase API. This struct provides methods for subscribing and unsubscribing to channels, 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 CoinbaseWebSocketConnection.
Sourcepub async fn subscribe<T: AsRef<str>>(
&mut self,
channels: Vec<Channel>,
product_ids: &[T],
) -> Result<(), Error>
pub async fn subscribe<T: AsRef<str>>( &mut self, channels: Vec<Channel>, product_ids: &[T], ) -> Result<(), Error>
Subscribes to the specified channels and product IDs.
This method sends a subscription request to the WebSocket server for the specified channels and product IDs.
§Parameters
channels: A vector of channels to subscribe to.product_ids: A slice of product IDs to subscribe to.
§Returns
Returns a Result indicating success or failure of the subscription request.
§Errors
Returns a tungstenite::Error if the WebSocket subscription request fails.
Sourcepub async fn unsubscribe<T: AsRef<str>>(
&mut self,
channels: Vec<Channel>,
product_ids: &[T],
) -> Result<(), Error>
pub async fn unsubscribe<T: AsRef<str>>( &mut self, channels: Vec<Channel>, product_ids: &[T], ) -> Result<(), Error>
Unsubscribes from the specified channels and product IDs.
This method sends an unsubscription request to the WebSocket server for the specified channels and product IDs.
§Parameters
channels: A vector of channels to unsubscribe from.product_ids: A slice of product IDs to unsubscribe from.
§Returns
Returns a Result indicating success or failure of the unsubscription request.
§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 the given list of asset IDs.
This method sends a subscription request to the WebSocket server for the specified asset IDs.
§Parameters
ids: A slice of asset IDs to subscribe to.
§Returns
Returns a Result indicating success or failure of the subscription request.
§Errors
If the WebSocket connection fails to send the subscription message, it returns a tungstenite::Error.
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,
Receives the next asset info update from the WebSocket connection.
This method listens for incoming messages from the WebSocket stream and processes them. It handles different message types, including ticker updates, ping messages, and error messages.
§Returns
Returns an Option containing a Result with the parsed Data or an error.
§Errors
If the message cannot be parsed or if there is an error in processing the ticker data,
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.
This method spawns a task to close the WebSocket connection asynchronously.
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 !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