AppFlowy-Cloud/src/biz/actix_ws/entities.rs

49 lines
1.2 KiB
Rust

use actix::{Message, Recipient};
use collab_rt::error::RealtimeError;
use serde_repr::{Deserialize_repr, Serialize_repr};
use std::fmt::Debug;
pub use collab_rt_entity::message::RealtimeMessage;
#[derive(Debug, Message, Clone)]
#[rtype(result = "Result<(), RealtimeError>")]
pub struct Connect<U> {
pub socket: Recipient<RealtimeMessage>,
pub user: U,
/// Each websocket connection has a unique id
pub ws_connect_id: String,
}
#[derive(Debug, Message, Clone)]
#[rtype(result = "Result<(), RealtimeError>")]
pub struct Disconnect<U> {
pub user: U,
/// Each websocket connection has a unique id
pub ws_connect_id: String,
}
#[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<U> {
pub user: U,
pub message: RealtimeMessage,
}
#[derive(Message)]
#[rtype(result = "Result<(), RealtimeError>")]
pub struct ClientStreamMessage {
pub uid: i64,
pub device_id: String,
pub message: RealtimeMessage,
}