rusty_common/websocket/exchanges/
bithumb.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::Bithumb, url)
12 .connect_timeout(Duration::from_secs(10))
13 .timeout(Duration::from_secs(30))
14 .ping_interval(Duration::from_secs(30))
15 .pong_timeout(Duration::from_secs(10))
16 .max_frame_size(65536) .max_message_size(10 * 1024 * 1024) .compression(CompressionConfig::default())
20 .build()
21}
22
23pub mod urls {
25 pub const PUBLIC: &str = "wss://pubwss.bithumb.com/pub/ws";
27
28 pub const PRIVATE: &str = "wss://wspri.bithumb.com:8443/connect";
30}
31
32pub fn create_public_subscription(
34 symbols: Vec<String>,
35 types: Vec<String>,
36 tick_types: Option<Vec<String>>,
37) -> simd_json::OwnedValue {
38 let mut msg = simd_json::json!({
39 "type": "ticker",
40 "symbols": symbols,
41 "tickTypes": types
42 });
43
44 if let Some(tick_types) = tick_types {
45 msg["tickTypes"] = simd_json::json!(tick_types);
46 }
47
48 msg
49}
50
51pub fn create_private_subscription(
53 api_key: &str,
54 secret_key: &str,
55 types: Vec<String>,
56) -> simd_json::OwnedValue {
57 simd_json::json!({
58 "type": "subscribe",
59 "apiKey": api_key,
60 "secretKey": secret_key,
61 "symbols": types
62 })
63}