better logging for disconnections

This commit is contained in:
ntr 2020-01-16 16:31:01 +10:00
parent 32701ed754
commit 3d98f5ed1d
3 changed files with 11 additions and 1 deletions

View File

@ -128,6 +128,7 @@ pub enum RpcRequest {
pub trait User {
fn receive(&mut self, data: Vec<u8>, stripe: &StripeClient) -> Result<RpcMessage, Error>;
fn connected(&mut self) -> Result<(), Error>;
fn disconnected(&self) -> Result<(), Error>;
fn send(&mut self, msg: RpcMessage) -> Result<(), Error>;
}
@ -170,8 +171,8 @@ impl Handler for Connection {
}
fn on_close(&mut self, _: CloseCode, _: &str) {
info!("websocket disconnected id={:?}", self.id);
self.events.send(Event::Disconnect(self.id)).unwrap();
self.user.disconnected().unwrap();
}
fn on_request(&mut self, req: &Request) -> ws::Result<Response> {

View File

@ -74,6 +74,10 @@ impl User for Anonymous {
Ok(())
}
fn disconnected(&self) -> Result<(), Error> {
Ok(())
}
fn receive(&mut self, data: Vec<u8>, _stripe: &StripeClient) -> Result<RpcMessage, Error> {
match from_slice::<RpcRequest>(&data) {
Ok(v) => {

View File

@ -134,6 +134,11 @@ impl User for Authenticated {
Ok(())
}
fn disconnected(&self) -> Result<(), Error> {
info!("user disconnected name={:?}", self.account.name);
Ok(())
}
fn receive(&mut self, data: Vec<u8>, stripe: &StripeClient) -> Result<RpcMessage, Error> {
// cast the msg to this type to receive method name
let begin = Instant::now();