|
@@ -217,7 +217,7 @@ impl HtxSwapWs {
|
|
|
Future: std::future::Future<Output=()> + Send + 'static, // 确保 Fut 是一个 Future,且输出类型为 ()
|
|
Future: std::future::Future<Output=()> + Send + 'static, // 确保 Fut 是一个 Future,且输出类型为 ()
|
|
|
{
|
|
{
|
|
|
let login_is = self.contains_pr();
|
|
let login_is = self.contains_pr();
|
|
|
- let login_param = self.login_param.clone().unwrap();
|
|
|
|
|
|
|
+ let login_param = self.login_param.clone();
|
|
|
let subscription = self.get_subscription();
|
|
let subscription = self.get_subscription();
|
|
|
let address_url = self.address_url.clone();
|
|
let address_url = self.address_url.clone();
|
|
|
let label = self.label.clone();
|
|
let label = self.label.clone();
|
|
@@ -256,13 +256,14 @@ impl HtxSwapWs {
|
|
|
// 需要登录
|
|
// 需要登录
|
|
|
if login_is {
|
|
if login_is {
|
|
|
let mut login_data = LOGIN_DATA.lock().await;
|
|
let mut login_data = LOGIN_DATA.lock().await;
|
|
|
|
|
+ let login_param_real = login_param.clone().unwrap();
|
|
|
login_data.0 = true;
|
|
login_data.0 = true;
|
|
|
let utc_now = Utc::now();
|
|
let utc_now = Utc::now();
|
|
|
let timestamp = utc_now.format("%Y-%m-%dT%H:%M:%S").to_string();
|
|
let timestamp = utc_now.format("%Y-%m-%dT%H:%M:%S").to_string();
|
|
|
let timestamp_str = percent_encoding::utf8_percent_encode(timestamp.clone().as_str(), crate::htx_swap_rest::FRAGMENT).to_string();
|
|
let timestamp_str = percent_encoding::utf8_percent_encode(timestamp.clone().as_str(), crate::htx_swap_rest::FRAGMENT).to_string();
|
|
|
|
|
|
|
|
- let access_key = login_param.api_key.clone();
|
|
|
|
|
- let secret_key = login_param.secret.clone();
|
|
|
|
|
|
|
+ let access_key = login_param_real.api_key.clone();
|
|
|
|
|
+ let secret_key = login_param_real.secret.clone();
|
|
|
let param_str = format!("AccessKeyId={}&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp={}", access_key, timestamp_str);
|
|
let param_str = format!("AccessKeyId={}&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp={}", access_key, timestamp_str);
|
|
|
|
|
|
|
|
let signature = {
|
|
let signature = {
|
|
@@ -352,11 +353,11 @@ impl HtxSwapWs {
|
|
|
//心跳包
|
|
//心跳包
|
|
|
let ping = json_value["ping"].as_i64();
|
|
let ping = json_value["ping"].as_i64();
|
|
|
match ping {
|
|
match ping {
|
|
|
- Some(_) => {
|
|
|
|
|
|
|
+ Some(ping_ts) => {
|
|
|
let pong = json!({
|
|
let pong = json!({
|
|
|
- "pong": Utc::now().timestamp()/100
|
|
|
|
|
|
|
+ "pong": ping_ts
|
|
|
});
|
|
});
|
|
|
- return ResponseData::new("".to_string(), -301, "success".to_string(), pong);
|
|
|
|
|
|
|
+ return ResponseData::new("".to_string(), -302, "success".to_string(), pong);
|
|
|
}
|
|
}
|
|
|
None => {}
|
|
None => {}
|
|
|
}
|
|
}
|
|
@@ -410,11 +411,12 @@ impl HtxSwapWs {
|
|
|
return res_data;
|
|
return res_data;
|
|
|
}
|
|
}
|
|
|
"ping" => {
|
|
"ping" => {
|
|
|
|
|
+ let ts = json_value["ts"].as_str().unwrap();
|
|
|
let pong = json!({
|
|
let pong = json!({
|
|
|
"op": "pong",
|
|
"op": "pong",
|
|
|
- "ts": Utc::now().timestamp()
|
|
|
|
|
|
|
+ "ts": ts
|
|
|
});
|
|
});
|
|
|
- return ResponseData::new("".to_string(), -301, "success".to_string(), pong);
|
|
|
|
|
|
|
+ return ResponseData::new("".to_string(), -302, "success".to_string(), pong);
|
|
|
}
|
|
}
|
|
|
"sub" => {
|
|
"sub" => {
|
|
|
res_data.channel = json_value["topic"].as_str().unwrap().to_string();
|
|
res_data.channel = json_value["topic"].as_str().unwrap().to_string();
|