rusty_common/websocket/exchanges/
binance.rs1use crate::types::Exchange;
6use crate::websocket::{CompressionConfig, WebSocketConfig};
7use std::time::Duration;
8
9pub fn default_config(url: String) -> WebSocketConfig {
11 WebSocketConfig::builder(Exchange::Binance, url)
12 .connect_timeout(Duration::from_secs(10))
13 .timeout(Duration::from_secs(30))
14 .ping_interval(Duration::from_secs(180)) .pong_timeout(Duration::from_secs(10))
16 .max_frame_size(65536) .max_message_size(10 * 1024 * 1024) .compression(CompressionConfig::disabled())
20 .build()
21}
22
23pub mod urls {
25 pub const SPOT_WS: &str = "wss://stream.binance.com:9443/ws";
27
28 pub const SPOT_COMBINED: &str = "wss://stream.binance.com:9443/stream";
30
31 pub const FUTURES_WS: &str = "wss://fstream.binance.com/ws";
33
34 pub const FUTURES_COMBINED: &str = "wss://fstream.binance.com/stream";
36
37 pub const TESTNET_SPOT_WS: &str = "wss://testnet.binance.vision/ws";
39
40 pub const TESTNET_FUTURES_WS: &str = "wss://stream.binancefuture.com/ws";
42}
43
44pub fn create_subscription(id: u64, method: &str, params: Vec<String>) -> simd_json::OwnedValue {
46 simd_json::json!({
47 "id": id,
48 "method": method,
49 "params": params
50 })
51}