Elegent shutdown the agent
This commit is contained in:
parent
19dd409744
commit
4aa8c19adb
@ -65,7 +65,7 @@ impl Actor for Agent {
|
||||
impl Handler<AgentMsg> for Agent {
|
||||
type Result = ();
|
||||
|
||||
fn handle(&mut self, msg: AgentMsg, _ctx: &mut Context<Self>) -> Self::Result {
|
||||
fn handle(&mut self, msg: AgentMsg, ctx: &mut Context<Self>) -> Self::Result {
|
||||
match msg {
|
||||
AgentMsg::Ready(ws_addr) => {
|
||||
self.ws_addr = Some(ws_addr);
|
||||
@ -89,7 +89,10 @@ impl Handler<AgentMsg> for Agent {
|
||||
.do_send(ws::WsMsg::SendToClient(data));
|
||||
}
|
||||
}
|
||||
_ => panic!("unexpected message"),
|
||||
AgentMsg::Shutdown => {
|
||||
info!("Agent {} - Shutdown", self.server_info);
|
||||
ctx.stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use actix::ActorContext;
|
||||
use actix::{Actor, Addr, Message, StreamHandler};
|
||||
use actix::{AsyncContext, Handler};
|
||||
use actix_session::Session;
|
||||
@ -53,6 +54,10 @@ impl StreamHandler<Result<ws::Message, ws::ProtocolError>> for WsSession {
|
||||
Ok(ws::Message::Binary(bin)) => {
|
||||
self.agent.do_send(AgentMsg::SendToServer(bin));
|
||||
}
|
||||
Ok(ws::Message::Close(_)) => {
|
||||
self.agent.do_send(AgentMsg::Shutdown);
|
||||
ctx.stop();
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user