|
|
@@ -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 {
|