zero4rs 2.0.0

zero4rs is a powerful, pragmatic, and extremely fast web framework for Rust
Documentation
use actix::Message as ActixMessage;
use actix::Recipient;

use serde::{Deserialize, Serialize};

use crate::core::auth0::UserDetails;
use crate::websocket::webchat::output::Level;
use crate::websocket::webchat::output::OutputMessage;
use crate::websocket::webchat::output::OutputMessageType;
use crate::websocket::webchat::ConnectId;

// ------------
// 下行消息
// ------------

// WsConn 将此消息发送到大厅,表示“请让我加入”
#[derive(ActixMessage)]
#[rtype(result = "()")]
pub struct Connect {
    pub addr: Recipient<OutputMessage>,
    pub id: ConnectId,
    pub user_details: Option<UserDetails>,
}

// WsConn 将其发送到大厅,表示“请带我出去”
#[derive(ActixMessage)]
#[rtype(result = "()")]
pub struct Disconnect {
    pub id: ConnectId,
}

// 连接将要关闭时发出告警
#[derive(ActixMessage)]
#[rtype(result = "()")]
pub struct ConnectionWarnning {
    pub id: ConnectId,
    pub at: String,
}

// 广播一条消息
#[derive(ActixMessage)]
#[rtype(result = "()")]
pub struct ServerTime {
    pub time: String,
}

// 广播一条消息
#[derive(Serialize, Deserialize, ActixMessage, Clone)]
#[rtype(result = "()")]
pub struct Broadcast {
    pub level: Level,
    pub ty: OutputMessageType,
    pub msg: String,
}