Browse Source

binan 接口提交

875428575@qq.com 2 years ago
parent
commit
704df3e979
1 changed files with 102 additions and 96 deletions
  1. 102 96
      src/exchange_libs.rs

+ 102 - 96
src/exchange_libs.rs

@@ -402,9 +402,9 @@ impl OkxExc {
                 } else {
                     let body: String = req_data.data;
                     let json_value: serde_json::Value = serde_json::from_str(&body).unwrap();
-                    let code = json_value["code"].to_string();
-                    let data = json_value["data"].to_string();
-                    let msg = json_value["msg"].to_string();
+                    let code = json_value["code"].as_str().unwrap();
+                    let data = json_value["data"].as_str().unwrap();
+                    let msg = json_value["msg"].as_str().unwrap();
 
                     // println!("--解析成功----code:{}",code);
                     // println!("--解析成功----data:{}",data);
@@ -733,29 +733,34 @@ impl SocketTool {
         login_json_str
     }
 
+    //币安--自定义-订阅
+    pub fn binance_run_custom(b_array: Vec<&str>, parse_fn: impl Fn()) {}
+}
 
-    //币安--深度信息
-    pub fn binance_run_kline(b_array: Vec<&str>, parse_fn: impl Fn()) {
-        SocketTool::binance_run(b_array, "kline_1s".to_string(), parse_fn);
-    }
-    //币安--深度信息
-    pub fn binance_run_depth(b_array: Vec<&str>, levels: String, parse_fn: impl Fn()) {
-        let str = format!("depth{}@100ms", levels);
-        SocketTool::binance_run(b_array, str.to_string(), parse_fn);
+//币安--深度信息
+pub fn binance_run_kline(b_array: Vec<&str>, parse_fn: impl Fn()) {
+    SocketTool::binance_run(b_array, "kline_1s".to_string(), parse_fn);
+}
+
+//币安--深度信息
+pub fn binance_run_depth(b_array: Vec<&str>, levels: String, parse_fn: impl Fn()) {
+    let str = format!("depth{}@100ms", levels);
+    SocketTool::binance_run(b_array, str.to_string(), parse_fn);
+}
+
+//币安--订阅
+pub fn binance_run(b_array: Vec<&str>, subscription_name: String, parse_fn: ParseFn) {
+    let mut params = vec![];
+
+    for item in &b_array {
+        let mut b_name = item.to_lowercase();
+        b_name = format!("{}@{}", b_name, subscription_name);
+        println!("-订阅频道--{0}", b_name);
+        params.push(b_name);
     }
-    //币安--订阅
-    pub fn binance_run(b_array: Vec<&str>, subscription_name: String, parse_fn: ParseFn) {
-        let mut params = vec![];
-
-        for item in &b_array {
-            let mut b_name = item.to_lowercase();
-            b_name = format!("{}@{}", b_name, subscription_name);
-            println!("-订阅频道--{0}", b_name);
-            params.push(b_name);
-        }
 
-        // 币安----socket
-        let subscription = json!({
+    // 币安----socket
+    let subscription = json!({
         "method": "SUBSCRIBE",
         "params":params,
             // [
@@ -764,81 +769,82 @@ impl SocketTool {
             // ],
                 "id": 1
         });
-        let mut btree_map: BTreeMap<String, String> = BTreeMap::new();
-        btree_map.insert("lable".parse().unwrap(), "binance".parse().unwrap());//产品Id
-        let biance_socke = SocketTool::new("wss://stream.binance.com:443/ws",
-                                           false,
-                                           btree_map,
-                                           subscription,
-        );
-        biance_socke.run("binance".to_string(), parse_fn);
-    }
-    fn hook_fn_binance(message: String, parse_fn: ParseFn) {
-        println!("币安--回调函数:响应: {}", message);
-        parse_fn(message);
-    }
+    let mut btree_map: BTreeMap<String, String> = BTreeMap::new();
+    btree_map.insert("lable".parse().unwrap(), "binance".parse().unwrap());//产品Id
+    let biance_socke = SocketTool::new("wss://stream.binance.com:443/ws",
+                                       false,
+                                       btree_map,
+                                       subscription,
+    );
+    biance_socke.run("binance".to_string(), parse_fn);
+}
 
+fn hook_fn_binance(message: String, parse_fn: ParseFn) {
+    println!("币安--回调函数:响应: {}", message);
+    parse_fn(message);
+}
 
-    //OKX--订阅
-    // pub fn okx_run(b_array: Vec<&str>, subscription_name: String, parse_fn: ParseFn) {
-    //     let mut params = vec![];
-    //
-    //     // okx----socket
-    //     // access_key: String,
-    //     // secret_key: String,
-    //     // passphrase: String,
-    //     let pu = "wss://ws.okx.com:8443/ws/v5/public";
-    //     let pr = "wss://ws.okx.com:8443/ws/v5/private";
-    //     let subscription = json!({
-    //            "op": "subscribe",
-    //             "args": [
-    //              // { "channel": "account", "ccy": "USDT" }, //账户
-    //              { "channel": "orders", "instType": "SPOT", "instId":"BTC-USDT" }
-    //         ]
-    //     });
-    //     let mut btree_map: BTreeMap<String, String> = BTreeMap::new();
-    //     btree_map.insert("lable".parse().unwrap(), "okx".parse().unwrap());//
-    //     btree_map.insert("access_key".parse().unwrap(), "a4cf4f54-f4d3-447d-a57c-166fd1ead2e0".parse().unwrap());//
-    //     btree_map.insert("secret_key".parse().unwrap(), "556DAB6773CA26DDAAA114F7044138CA".parse().unwrap());//
-    //     btree_map.insert("passphrase".parse().unwrap(), "rust_Test123".parse().unwrap());//
-    //
-    //     let biance_socke = SocketTool::new(pr,
-    //                                        true,
-    //                                        btree_map,
-    //                                        subscription,
-    //                                        hook_fn);
-    //     biance_socke.run();
-    //
-    //     for item in &b_array {
-    //         let mut b_name = item.to_lowercase();
-    //         b_name = format!("{}@{}", b_name, subscription_name);
-    //         println!("-订阅频道--{0}", b_name);
-    //         params.push(b_name);
-    //     }
-    //
-    //     // 币安----socket
-    //     let subscription = json!({
-    //     "method": "SUBSCRIBE",
-    //     "params":params,
-    //         // [
-    //         //     "btcusdt@depth@100ms",//深度信息
-    //         //     "btcusdt@kline_1s"//k线信息
-    //         // ],
-    //             "id": 1
-    //     });
-    //     let mut btree_map: BTreeMap<String, String> = BTreeMap::new();
-    //     btree_map.insert("lable".parse().unwrap(), "binance".parse().unwrap());//产品Id
-    //     let biance_socke = SocketTool::new("wss://stream.binance.com:443/ws",
-    //                                        false,
-    //                                        btree_map,
-    //                                        subscription,
-    //     );
-    //     biance_socke.run("binance".to_string(), parse_fn);
-    // }
-    fn hook_fn_okx(message: String, parse_fn: ParseFn) {
-        println!("OKX--回调函数:响应: {}", message);
-        parse_fn(message);
-    }
+
+//OKX--订阅
+// pub fn okx_run(b_array: Vec<&str>, subscription_name: String, parse_fn: ParseFn) {
+//     let mut params = vec![];
+//
+//     // okx----socket
+//     // access_key: String,
+//     // secret_key: String,
+//     // passphrase: String,
+//     let pu = "wss://ws.okx.com:8443/ws/v5/public";
+//     let pr = "wss://ws.okx.com:8443/ws/v5/private";
+//     let subscription = json!({
+//            "op": "subscribe",
+//             "args": [
+//              // { "channel": "account", "ccy": "USDT" }, //账户
+//              { "channel": "orders", "instType": "SPOT", "instId":"BTC-USDT" }
+//         ]
+//     });
+//     let mut btree_map: BTreeMap<String, String> = BTreeMap::new();
+//     btree_map.insert("lable".parse().unwrap(), "okx".parse().unwrap());//
+//     btree_map.insert("access_key".parse().unwrap(), "a4cf4f54-f4d3-447d-a57c-166fd1ead2e0".parse().unwrap());//
+//     btree_map.insert("secret_key".parse().unwrap(), "556DAB6773CA26DDAAA114F7044138CA".parse().unwrap());//
+//     btree_map.insert("passphrase".parse().unwrap(), "rust_Test123".parse().unwrap());//
+//
+//     let biance_socke = SocketTool::new(pr,
+//                                        true,
+//                                        btree_map,
+//                                        subscription,
+//                                        hook_fn);
+//     biance_socke.run();
+//
+//     for item in &b_array {
+//         let mut b_name = item.to_lowercase();
+//         b_name = format!("{}@{}", b_name, subscription_name);
+//         println!("-订阅频道--{0}", b_name);
+//         params.push(b_name);
+//     }
+//
+//     // 币安----socket
+//     let subscription = json!({
+//     "method": "SUBSCRIBE",
+//     "params":params,
+//         // [
+//         //     "btcusdt@depth@100ms",//深度信息
+//         //     "btcusdt@kline_1s"//k线信息
+//         // ],
+//             "id": 1
+//     });
+//     let mut btree_map: BTreeMap<String, String> = BTreeMap::new();
+//     btree_map.insert("lable".parse().unwrap(), "binance".parse().unwrap());//产品Id
+//     let biance_socke = SocketTool::new("wss://stream.binance.com:443/ws",
+//                                        false,
+//                                        btree_map,
+//                                        subscription,
+//     );
+//     biance_socke.run("binance".to_string(), parse_fn);
+// }
+fn hook_fn_okx(message: String, parse_fn: ParseFn) {
+    println!("OKX--回调函数:响应: {}", message);
+    parse_fn(message);
+}
 }