Skip to content

Commit

Permalink
x
Browse files Browse the repository at this point in the history
  • Loading branch information
yutiansut committed Dec 5, 2019
1 parent 6e979ca commit 71e7a68
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 64 deletions.
3 changes: 2 additions & 1 deletion src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ fn main() {


qawebsocket::wsmain(
"ws:https://101.132.37.31:7988".to_string());
"ws:https://101.132.37.31:7988".to_string(),
"s01".to_string(), "s01".to_string());

test_ndarray();
test_datetime();
Expand Down
139 changes: 76 additions & 63 deletions src/qawebsocket.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,12 @@ use futures::{
};


pub fn wsmain(wsuri:String) {
pub fn wsmain(wsuri:String, user_name:String, password:String) {
::std::env::set_var("RUST_LOG", "actix_web=info");
env_logger::init();
let sys = actix::System::new("ws-example");


Arbiter::spawn(lazy(|| {
Client::new()
.ws(wsuri)
Expand All @@ -38,14 +39,23 @@ pub fn wsmain(wsuri:String) {
ChatClient(SinkWrite::new(sink, ctx))
});

// start console loop
thread::spawn(move || loop {
// start console loop loop
thread::spawn(move || {
let mut cmd = String::new();
if io::stdin().read_line(&mut cmd).is_err() {
println!("error");
return;
}
addr.do_send(ClientCommand(cmd));

let peek = Peek { aid: "peek_message".to_string()};
let login = ReqLogin {
aid: "req_login".to_string(),
bid: "QUANTAXIS".to_string(),
user_name: "133496".to_string(),
password: "QCHL1234".to_string()};

// if io::stdin().read_line(&mut cmd).is_err() {
// println!("error");
// return;
// }
let b = serde_json::to_string(&login).unwrap();
addr.do_send(ClientCommand(b));
});
})
}));
Expand Down Expand Up @@ -94,6 +104,64 @@ where
}
}

impl<T: 'static> StreamHandler<Frame, WsProtocolError> for ChatClient<T>
where
T: AsyncRead + AsyncWrite,
{
fn handle(&mut self, msg: Frame, _ctx: &mut Context<Self>) {

if let Frame::Text(txt) = msg {
let res = txt.unwrap();
let xu = std::str::from_utf8(&res).unwrap();
println!("{:?}",xu);
let resx:Value = serde_json::from_str(&xu).unwrap();

let aid = resx["aid"].to_string();
let aid_patten = aid.as_str();
let peek = Peek { aid: "peek_message".to_string()};
let login = ReqLogin {
aid: "req_login".to_string(),
bid: "QUANTAXIS".to_string(),
user_name: "133496".to_string(),
password: "QCHL1234".to_string()};
println!("{:?}",aid_patten);
match aid_patten {
"\"rtn_brokers\"" => {

println!("{:?}", peek);
let b = serde_json::to_string(&peek).unwrap();
println!("{:?}",b);
self.0.write(Message::Text(b)).unwrap();

//
// println!("{:?}", login);
// let b = serde_json::to_string(&login).unwrap();
// println!("{:?}",b);
// self.0.write(Message::Text(b)).unwrap();
},
"\"rtn_data\"" | "\"rtn_condition_orders\"" => {
println!("xxx");
let b = serde_json::to_string(&peek).unwrap();
println!("{:?}",b);
self.0.write(Message::Text(b)).unwrap();
},
_ => println!("blahh blahhh"),
}
}
}

fn started(&mut self, _ctx: &mut Context<Self>) {
println!("Connected");
}

fn finished(&mut self, ctx: &mut Context<Self>) {
println!("Server disconnected");
ctx.stop()
}
}



#[derive(Serialize, Deserialize, Debug)]
struct Peek {
aid: String,
Expand Down Expand Up @@ -200,61 +268,6 @@ where

/// Handle server websocket messages

impl<T: 'static> StreamHandler<Frame, WsProtocolError> for ChatClient<T>
where
T: AsyncRead + AsyncWrite,
{
fn handle(&mut self, msg: Frame, _ctx: &mut Context<Self>) {

if let Frame::Text(txt) = msg {
let res = txt.unwrap();
let xu = std::str::from_utf8(&res).unwrap();
println!("{:?}",xu);
let resx:Value = serde_json::from_str(&xu).unwrap();

let aid = resx["aid"].to_string();
let aid_patten = aid.as_str();
let peek = Peek { aid: "peek_message".to_string()};
let login = ReqLogin {
aid: "req_login".to_string(),
bid: "simnow".to_string(),
user_name: "133496".to_string(),
password: "QCHL1234".to_string()};
println!("{:?}",aid_patten);
match aid_patten {
"\"rtn_brokers\"" => {

println!("{:?}", peek);
let b = serde_json::to_string(&peek).unwrap();
println!("{:?}",b);
self.0.write(Message::Text(b)).unwrap();


println!("{:?}", login);
let b = serde_json::to_string(&login).unwrap();
println!("{:?}",b);
self.0.write(Message::Text(b)).unwrap();
},
"\"rtn_data\"" | "\"rtn_condition_orders\"" => {
println!("xxx");
let b = serde_json::to_string(&peek).unwrap();
println!("{:?}",b);
self.0.write(Message::Text(b)).unwrap();
},
_ => println!("blahh blahhh"),
}
}
}

fn started(&mut self, _ctx: &mut Context<Self>) {
println!("Connected");
}

fn finished(&mut self, ctx: &mut Context<Self>) {
println!("Server disconnected");
ctx.stop()
}
}

impl<T: 'static> actix::io::WriteHandler<WsProtocolError> for ChatClient<T> where
T: AsyncRead + AsyncWrite
Expand Down

0 comments on commit 71e7a68

Please sign in to comment.