pub struct DeribitWebSocketClient {
pub config: Arc<WebSocketConfig>,
pub session: Arc<WebSocketSession>,
/* private fields */
}Expand description
WebSocket client for Deribit
Fields§
§config: Arc<WebSocketConfig>WebSocket configuration
session: Arc<WebSocketSession>WebSocket session
Implementations§
Source§impl DeribitWebSocketClient
impl DeribitWebSocketClient
Sourcepub fn new(config: &WebSocketConfig) -> Result<Self, WebSocketError>
pub fn new(config: &WebSocketConfig) -> Result<Self, WebSocketError>
Create a new WebSocket client
Sourcepub fn new_with_url(ws_url: String) -> Result<Self, WebSocketError>
pub fn new_with_url(ws_url: String) -> Result<Self, WebSocketError>
Create a new WebSocket client with default configuration
Sourcepub fn new_testnet() -> Result<Self, WebSocketError>
pub fn new_testnet() -> Result<Self, WebSocketError>
Create a new WebSocket client for testnet
Sourcepub fn new_production() -> Result<Self, WebSocketError>
pub fn new_production() -> Result<Self, WebSocketError>
Create a new WebSocket client for production
Sourcepub async fn connect(&self) -> Result<(), WebSocketError>
pub async fn connect(&self) -> Result<(), WebSocketError>
Connect to the WebSocket server
Sourcepub async fn disconnect(&self) -> Result<(), WebSocketError>
pub async fn disconnect(&self) -> Result<(), WebSocketError>
Disconnect from the WebSocket server
Sourcepub async fn is_connected(&self) -> bool
pub async fn is_connected(&self) -> bool
Check if connected
Sourcepub async fn authenticate(
&self,
client_id: &str,
client_secret: &str,
) -> Result<JsonRpcResponse, WebSocketError>
pub async fn authenticate( &self, client_id: &str, client_secret: &str, ) -> Result<JsonRpcResponse, WebSocketError>
Authenticate with the server
Sourcepub async fn subscribe(
&self,
channels: Vec<String>,
) -> Result<JsonRpcResponse, WebSocketError>
pub async fn subscribe( &self, channels: Vec<String>, ) -> Result<JsonRpcResponse, WebSocketError>
Subscribe to channels
Sourcepub async fn unsubscribe(
&self,
channels: Vec<String>,
) -> Result<JsonRpcResponse, WebSocketError>
pub async fn unsubscribe( &self, channels: Vec<String>, ) -> Result<JsonRpcResponse, WebSocketError>
Unsubscribe from channels
Sourcepub async fn send_request(
&self,
request: JsonRpcRequest,
) -> Result<JsonRpcResponse, WebSocketError>
pub async fn send_request( &self, request: JsonRpcRequest, ) -> Result<JsonRpcResponse, WebSocketError>
Send a JSON-RPC request
Sourcepub async fn send_message(&self, message: String) -> Result<(), WebSocketError>
pub async fn send_message(&self, message: String) -> Result<(), WebSocketError>
Send a raw message
Sourcepub async fn receive_message(&self) -> Result<String, WebSocketError>
pub async fn receive_message(&self) -> Result<String, WebSocketError>
Receive a message
Sourcepub async fn get_subscriptions(&self) -> Vec<String>
pub async fn get_subscriptions(&self) -> Vec<String>
Get active subscriptions
Sourcepub async fn test_connection(&self) -> Result<JsonRpcResponse, WebSocketError>
pub async fn test_connection(&self) -> Result<JsonRpcResponse, WebSocketError>
Test connection
Sourcepub async fn get_time(&self) -> Result<JsonRpcResponse, WebSocketError>
pub async fn get_time(&self) -> Result<JsonRpcResponse, WebSocketError>
Get server time
Sourcepub async fn mass_quote(
&self,
request: MassQuoteRequest,
) -> Result<MassQuoteResult, WebSocketError>
pub async fn mass_quote( &self, request: MassQuoteRequest, ) -> Result<MassQuoteResult, WebSocketError>
Place mass quotes
Sourcepub async fn cancel_quotes(
&self,
request: CancelQuotesRequest,
) -> Result<CancelQuotesResponse, WebSocketError>
pub async fn cancel_quotes( &self, request: CancelQuotesRequest, ) -> Result<CancelQuotesResponse, WebSocketError>
Cancel quotes
Sourcepub async fn set_mmp_config(
&self,
config: MmpGroupConfig,
) -> Result<(), WebSocketError>
pub async fn set_mmp_config( &self, config: MmpGroupConfig, ) -> Result<(), WebSocketError>
Set MMP group configuration
Sourcepub async fn get_mmp_config(
&self,
mmp_group: Option<String>,
) -> Result<Vec<MmpGroupConfig>, WebSocketError>
pub async fn get_mmp_config( &self, mmp_group: Option<String>, ) -> Result<Vec<MmpGroupConfig>, WebSocketError>
Get MMP group configuration
Sourcepub async fn reset_mmp(
&self,
mmp_group: Option<String>,
) -> Result<(), WebSocketError>
pub async fn reset_mmp( &self, mmp_group: Option<String>, ) -> Result<(), WebSocketError>
Reset MMP group
Sourcepub async fn get_open_orders(
&self,
currency: Option<String>,
kind: Option<String>,
type_filter: Option<String>,
) -> Result<Vec<QuoteInfo>, WebSocketError>
pub async fn get_open_orders( &self, currency: Option<String>, kind: Option<String>, type_filter: Option<String>, ) -> Result<Vec<QuoteInfo>, WebSocketError>
Get open orders (including quotes)
Sourcepub fn set_message_handler<F, E>(
&mut self,
message_callback: F,
error_callback: E,
)
pub fn set_message_handler<F, E>( &mut self, message_callback: F, error_callback: E, )
Set message handler with callbacks The message_callback processes each incoming message and returns Result<(), Error> The error_callback is called only when message_callback returns an error
Sourcepub fn set_message_handler_builder(&mut self, handler: MessageHandler)
pub fn set_message_handler_builder(&mut self, handler: MessageHandler)
Set message handler using builder pattern
Sourcepub fn clear_message_handler(&mut self)
pub fn clear_message_handler(&mut self)
Remove the current message handler
Sourcepub fn has_message_handler(&self) -> bool
pub fn has_message_handler(&self) -> bool
Check if message handler is set
Sourcepub async fn receive_and_process_message(&self) -> Result<(), WebSocketError>
pub async fn receive_and_process_message(&self) -> Result<(), WebSocketError>
Receive and process a message using the registered callbacks This method will:
- Receive a message from the WebSocket
- Call the primary callback with the message
- If primary callback returns error, call error callback with message and error
Sourcepub async fn start_message_processing_loop(&self) -> Result<(), WebSocketError>
pub async fn start_message_processing_loop(&self) -> Result<(), WebSocketError>
Start message processing loop with callbacks This will continuously receive messages and process them using the registered callbacks The loop will continue until an error occurs or the connection is closed