rusty_feeder/exchange/binance/common/
ws.rs1use serde::{Deserialize, Serialize};
2use smallvec::SmallVec;
3use smartstring::alias::String;
4
5pub const DEFAULT_TIMEOUT_MS: u64 = 10_000;
7pub const DEFAULT_PING_INTERVAL_MS: u64 = 3 * 60 * 1000;
9pub const DEFAULT_MAX_FRAME_SIZE: usize = 16 * 1024 * 1024;
11
12pub const MAX_CONNECTIONS_PER_IP_5_MIN: u32 = 300;
15pub const MAX_INCOMING_MESSAGES_PER_SECOND: u32 = 5;
17
18pub const MAX_STREAMS_PER_CONNECTION: u32 = 1024;
21
22#[derive(Debug, Serialize, Deserialize)]
24pub struct WebSocketSubscription {
25 pub method: String,
27
28 pub params: SmallVec<[String; 8]>,
30
31 pub id: u64,
33}
34
35#[inline]
37pub fn create_subscription(channels: SmallVec<[String; 8]>, id: u64) -> WebSocketSubscription {
38 WebSocketSubscription {
39 method: "SUBSCRIBE".into(),
40 params: channels,
41 id,
42 }
43}
44
45#[inline]
47pub fn create_unsubscription(channels: SmallVec<[String; 8]>, id: u64) -> WebSocketSubscription {
48 WebSocketSubscription {
49 method: "UNSUBSCRIBE".into(),
50 params: channels,
51 id,
52 }
53}