Procházet zdrojové kódy

优化 测试 socket 订单

875428575@qq.com před 2 roky
rodič
revize
380128937c
1 změnil soubory, kde provedl 16 přidání a 9 odebrání
  1. 16 9
      src/exchange_libs.rs

+ 16 - 9
src/exchange_libs.rs

@@ -447,7 +447,8 @@ impl SocketTool {
     pub fn new(request_url: &str,
                is_login: bool,
                login_param: BTreeMap<String, String>,
-               subscription: serde_json::Value, ) -> SocketTool {
+               subscription: serde_json::Value, ) -> SocketTool
+    {
         let mut ip_v = "";
         let mut port_v = 8080;
         let mut v_str = String::from("");
@@ -480,6 +481,7 @@ impl SocketTool {
         /*****socket配置信息***/
         let request_url = Url::parse(self.request_url.as_str()).unwrap();
         let parse_fn = Arc::new(Mutex::new(parse_fn)); // Wrap the closure in an Arc<Mutex<_>>
+        let login_param = self.login_param.clone();
 
         /*****判断代理IP是否为空,空则不走代理*****/
         if self.ip.len() > 0 {
@@ -505,7 +507,7 @@ impl SocketTool {
             /******登陆认证********/
             if self.is_login {
                 println!("----需要登陆");
-                let login_json_str = self.log_in_to_str();
+                let login_json_str = SocketTool::log_in_to_str(login_param);
                 // println!("---组装 登陆信息:{0}", login_json_str);
                 socket.write_message(Message::Text(login_json_str)).unwrap();
                 thread::sleep(Duration::from_secs(1));
@@ -580,9 +582,8 @@ impl SocketTool {
             /******登陆认证********/
             if self.is_login {
                 println!("----需要登陆");
-
-                let login_json_str = self.log_in_to_str();
-                println!("---组装 登陆信息:{0}", login_json_str);
+                let login_json_str = SocketTool::log_in_to_str(login_param);
+                // println!("---组装 登陆信息:{0}", login_json_str);
                 socket.write_message(Message::Text(login_json_str)).unwrap();
                 thread::sleep(Duration::from_secs(1));
             } else {
@@ -639,11 +640,11 @@ impl SocketTool {
         }
     }
 
-    fn log_in_to_str(&self) -> String {
+    fn log_in_to_str(login_param: BTreeMap<String, String>) -> String {
         let mut login_json_str = String::from("");
 
         //解析并且组装 认证信息
-        let lable = self.login_param.get("lable");
+        let lable = login_param.get("lable");
         if let Some(ref_string) = lable {
             if *ref_string == "binance" {
                 println!("----币安 暂不做登陆");
@@ -652,7 +653,7 @@ impl SocketTool {
                 let mut secret_key: String = "".to_string();
                 let mut passphrase: String = "".to_string();
 
-                for (key, value) in &self.login_param {
+                for (key, value) in &login_param {
                     // println!("Key: {}, Value: {}", key, value);
                     if key == "access_key" {
                         access_key = value.parse().unwrap();
@@ -751,11 +752,17 @@ impl SocketTool {
 
 
     //OKX-私有频道-订单信息
-    pub fn okx_pr_run_orders<F, Fut>(b_array: Vec<&str>, btree_map: BTreeMap<String, String>, parse_fn: F)
+    pub fn okx_pr_run_orders<F, Fut>(b_array: Vec<&str>, access_key: String, secret_key: String, passphrase: String, parse_fn: F)
         where
             F: Fn(ResponseData) -> Fut + 'static + Send + Sync,
             Fut: Future<Output=()> + Send + 'static,
     {
+        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(), access_key);//
+        btree_map.insert("secret_key".parse().unwrap(), secret_key);//
+        btree_map.insert("passphrase".parse().unwrap(), passphrase);//
+
         //组装推送信息
         let mut args = vec![];
         for item in &b_array {