|
|
@@ -58,9 +58,9 @@ impl AbstractWsMode {
|
|
|
loop {
|
|
|
let (ws_stream, _) = connect_async(address_url.clone(), proxy).await?;
|
|
|
trace!("WebSocket 握手完成。");
|
|
|
- let (mut write, mut read) = ws_stream.split();
|
|
|
+ let (write, mut read) = ws_stream.split();
|
|
|
|
|
|
- let write_arc =Arc::new(Mutex::new(write));
|
|
|
+ let write_arc = Arc::new(Mutex::new(write));
|
|
|
let write_clone = Arc::clone(&write_arc);
|
|
|
//订阅写入(包括订阅信息 )
|
|
|
trace!("订阅内容:{:?}",subscribe_array.clone());
|
|
|
@@ -82,7 +82,6 @@ impl AbstractWsMode {
|
|
|
};
|
|
|
let write_clone3 = Arc::clone(&write_arc);
|
|
|
let ws_to_stdout = async {
|
|
|
-
|
|
|
while let Some(message) = read.next().await {
|
|
|
let mut write_lock3 = write_clone3.lock().await;
|
|
|
let response_data = AbstractWsMode::analysis_message(message, message_text, message_ping, message_pong);
|
|
|
@@ -91,48 +90,53 @@ impl AbstractWsMode {
|
|
|
let mut data = response_data.unwrap();
|
|
|
data.label = lable.clone();
|
|
|
let code = data.code.clone();
|
|
|
- /**
|
|
|
- 200 -正确返回
|
|
|
- -200 -登录成功
|
|
|
- -201 -订阅成功
|
|
|
- -300 -客户端收到服务器心跳ping,需要响应
|
|
|
- -301 -客户端收到服务器心跳pong,需要响应
|
|
|
- -302 -客户端收到服务器心跳自定义,需要响应自定义
|
|
|
- **/
|
|
|
+ /*
|
|
|
+ 200 -正确返回
|
|
|
+ -200 -登录成功
|
|
|
+ -201 -订阅成功
|
|
|
+ -300 -客户端收到服务器心跳ping,需要响应
|
|
|
+ -301 -客户端收到服务器心跳pong,需要响应
|
|
|
+ -302 -客户端收到服务器心跳自定义,需要响应自定义
|
|
|
+ */
|
|
|
match code.as_str() {
|
|
|
"200" => {
|
|
|
if bool_v1.load(Ordering::Relaxed) {
|
|
|
read_tx.unbounded_send(data).unwrap();
|
|
|
}
|
|
|
- },
|
|
|
- "-200" => {//订阅成功
|
|
|
+ }
|
|
|
+ "-200" => {
|
|
|
+ //订阅成功
|
|
|
trace!("登录成功:{:?}", data);
|
|
|
- },
|
|
|
- "-201" => {//订阅成功
|
|
|
+ }
|
|
|
+ "-201" => {
|
|
|
+ //订阅成功
|
|
|
trace!("订阅成功:{:?}", data);
|
|
|
- },
|
|
|
- "-300" => {//服务器发送心跳 ping 给客户端,客户端需要pong回应
|
|
|
+ }
|
|
|
+ "-300" => {
|
|
|
+ //服务器发送心跳 ping 给客户端,客户端需要pong回应
|
|
|
trace!("服务器响应-ping");
|
|
|
- if data.data.len()>0{
|
|
|
+ if data.data.len() > 0 {
|
|
|
write_lock3.send(Message::Pong(Vec::from(data.data))).await?;
|
|
|
trace!("客户端回应服务器-pong");
|
|
|
}
|
|
|
- },
|
|
|
- "-301" => {//服务器发送心跳 pong 给客户端,客户端需要ping回应
|
|
|
+ }
|
|
|
+ "-301" => {
|
|
|
+ //服务器发送心跳 pong 给客户端,客户端需要ping回应
|
|
|
trace!("服务器响应-pong");
|
|
|
- if data.data.len()>0{
|
|
|
+ if data.data.len() > 0 {
|
|
|
write_lock3.send(Message::Ping(Vec::from(data.data))).await?;
|
|
|
trace!("客户端回应服务器-ping");
|
|
|
}
|
|
|
- },
|
|
|
- "-302" => {//客户端收到服务器心跳自定义,需要响应自定义
|
|
|
+ }
|
|
|
+ "-302" => {
|
|
|
+ //客户端收到服务器心跳自定义,需要响应自定义
|
|
|
trace!("特定字符心跳,特殊响应:{:?}", data);
|
|
|
write_lock3.send(Message::Text(data.data)).await?;
|
|
|
trace!("特殊字符心跳-回应完成");
|
|
|
- },
|
|
|
+ }
|
|
|
_ => {
|
|
|
trace!("未知:{:?}",data);
|
|
|
- },
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|