瀏覽代碼

bitmart bug ,心跳包新增

hl 1 年之前
父節點
當前提交
40e3694f7a
共有 2 個文件被更改,包括 25 次插入26 次删除
  1. 10 15
      exchanges/src/bitmart_swap_ws.rs
  2. 15 11
      exchanges/tests/bitmart_swap_test.rs

+ 10 - 15
exchanges/src/bitmart_swap_ws.rs

@@ -16,7 +16,7 @@ use tokio_tungstenite::tungstenite::{Error, Message};
 use tracing::{error, info, trace};
 
 use crate::response_base::ResponseData;
-use crate::socket_tool::AbstractWsMode;
+use crate::socket_tool::{AbstractWsMode, HeartbeatType};
 
 pub(crate) static LOGIN_DATA: Lazy<Mutex<(bool, bool)>> = Lazy::new(|| {
     println!("初始化...");
@@ -67,7 +67,7 @@ pub struct BitMartSwapWs {
     //订阅
     subscribe_types: Vec<BitMartSwapSubscribeType>,
     //心跳间隔
-    _heartbeat_time: u64,
+    heartbeat_time: u64,
 }
 
 
@@ -101,7 +101,7 @@ impl BitMartSwapWs {
             login_param,
             symbol_s: vec![],
             subscribe_types: vec![],
-            _heartbeat_time: 1000 * 10,
+            heartbeat_time: 1000 * 5,
         }
     }
 
@@ -210,22 +210,17 @@ impl BitMartSwapWs {
         let subscription = self.get_subscription();
         let address_url = self.address_url.clone();
         let label = self.label.clone();
-        // let heartbeat_time = self.heartbeat_time.clone();
+        let heartbeat_time = self.heartbeat_time.clone();
 
 
         //心跳-- 方法内部线程启动
-        // let write_tx_clone1 = Arc::clone(write_tx_am);
+        let write_tx_clone1 = Arc::clone(write_tx_am);
         let write_tx_clone2 = Arc::clone(write_tx_am);
-        // tokio::spawn(async move {
-        //     trace!("线程-异步心跳-开始");
-        //     let ping_str = json!({
-        //         "method": "server.ping",
-        //         "params": {},
-        //         "id": 1
-        //     });
-        //     AbstractWsMode::ping_or_pong(write_tx_clone1, HeartbeatType::Custom(ping_str.to_string()), heartbeat_time).await;
-        //     trace!("线程-异步心跳-结束");
-        // });
+        tokio::spawn(async move {
+            trace!("线程-异步心跳-开始");
+            AbstractWsMode::ping_or_pong(write_tx_clone1, HeartbeatType::Ping, heartbeat_time).await;
+            trace!("线程-异步心跳-结束");
+        });
 
         //设置订阅
         let mut subscribe_array = vec![];

+ 15 - 11
exchanges/tests/bitmart_swap_test.rs

@@ -12,9 +12,10 @@ use exchanges::proxy;
 use exchanges::response_base::ResponseData;
 
 
-const ACCESS_KEY: &str = "80618e45710812162b04892c7ee5ead4a3cc3e56";
-const SECRET_KEY: &str = "6c6c98544461bbe71db2bca4c6d7fd0021e0ba9efc215f9c6ad41852df9d9df9";
-const API_MEMO: &str = "test001";
+const ACCESS_KEY: &str = "cf821f946b2ff9af69dd4a9fa80e862018c99bf4";
+const SECRET_KEY: &str = "7148eeec5c7234c5a54db446dc4b8cb6bacad3d54c0cdddf8ba9af85c6580600";
+const API_MEMO: &str = "local\
+";
 
 //ws-订阅公共频道信息
 #[tokio::test(flavor = "multi_thread", worker_threads = 2)]
@@ -81,14 +82,14 @@ async fn ws_custom_subscribe() {
         api_memo: API_MEMO.to_string(),
     };
     let t1 = tokio::spawn(async move {
-        let mut ws = get_ws(Option::from(param), BitMartSwapWsType::Public);
+        let mut ws = get_ws(Option::from(param), BitMartSwapWsType::Private);
         ws.set_symbols(vec!["BTC_USDT".to_string(), "ETC_USDT".to_string()]);
         ws.set_subscribe(vec![
-            BitMartSwapSubscribeType::PuFuturesDepth,
+            // BitMartSwapSubscribeType::PuFuturesDepth,
 
-            // BitMartSwapSubscribeType::PrFuturesOrders,
-            // BitMartSwapSubscribeType::PrFuturesPositions,
-            // BitMartSwapSubscribeType::PrFuturesBalances,
+            BitMartSwapSubscribeType::PrFuturesOrders,
+            BitMartSwapSubscribeType::PrFuturesPositions,
+            BitMartSwapSubscribeType::PrFuturesBalances,
         ]);
         //链接
         let bool_v3_clone = Arc::clone(&is_shutdown_arc);
@@ -127,7 +128,8 @@ async fn rest_get_depth_test() {
     proxy_handle();
 
     let mut ret = get_rest();
-    let req_data = ret.get_depth("BTCUSDT".to_string()).await;
+    let req_data = ret.get_depth(json!({
+         })).await;
     trace!("bitmart--深度--{:?}", req_data);
     trace!("bitmart--深度--{}", req_data.data);
 }
@@ -140,7 +142,8 @@ async fn rest_get_market_test() {
     proxy_handle();
 
     let mut ret = get_rest();
-    let req_data = ret.get_market("BTCUSDT".to_string()).await;
+    let req_data = ret.get_market(json!({
+         })).await;
     trace!("bitmart--合约信息--{:?}", req_data);
     trace!("bitmart--合约信息--{}", req_data.data);
 }
@@ -167,7 +170,8 @@ async fn rest_get_user_position_test() {
     // proxy_handle();
 
     let mut ret = get_rest();
-    let req_data = ret.get_user_position("BTCUSDT".to_string()).await;
+    let req_data = ret.get_user_position(json!({
+         })).await;
     trace!("bitmart--用户仓位列表--{:?}", req_data);
     trace!("bitmart--用户仓位列表--{}", req_data.data);
 }