AppFlowy-Cloud/services/appflowy-collaborate/src/actix_ws/entities.rs

46 lines
1.1 KiB
Rust

use crate::error::RealtimeError;
use actix::{Message, Recipient};
use serde_repr::{Deserialize_repr, Serialize_repr};
use std::fmt::Debug;
use collab_rt_entity::user::RealtimeUser;
pub use collab_rt_entity::RealtimeMessage;
#[derive(Debug, Message, Clone)]
#[rtype(result = "Result<(), RealtimeError>")]
pub struct Connect {
pub socket: Recipient<RealtimeMessage>,
pub user: RealtimeUser,
}
#[derive(Debug, Message, Clone)]
#[rtype(result = "Result<(), RealtimeError>")]
pub struct Disconnect {
pub user: RealtimeUser,
}
#[derive(Debug, Message, Clone)]
#[rtype(result = "Result<(), RealtimeError>")]
pub struct DisconnectByServer;
#[derive(Debug, Clone, Serialize_repr, Deserialize_repr)]
#[repr(u8)]
pub enum BusinessID {
CollabId = 1,
}
#[derive(Debug, Message, Clone)]
#[rtype(result = "Result<(), RealtimeError>")]
pub struct ClientMessage {
pub user: RealtimeUser,
pub message: RealtimeMessage,
}
#[derive(Message)]
#[rtype(result = "Result<(), RealtimeError>")]
pub struct ClientStreamMessage {
pub uid: i64,
pub device_id: String,
pub message: RealtimeMessage,
}