pub struct CollaborationServer { /* private fields */ }Expand description
YrsManager 的包装器,用于处理动态房间创建和广播组管理
Implementations§
Source§impl CollaborationServer
impl CollaborationServer
pub fn new(yrs_manager: Arc<YrsManager>, port: u16) -> Self
Sourcepub fn with_sync_service(
yrs_manager: Arc<YrsManager>,
sync_service: Arc<SyncService>,
port: u16,
) -> Self
pub fn with_sync_service( yrs_manager: Arc<YrsManager>, sync_service: Arc<SyncService>, port: u16, ) -> Self
使用现有的 SyncService 创建服务器
Sourcepub async fn handle_rejection(err: Rejection) -> Result<impl Reply, Infallible>
pub async fn handle_rejection(err: Rejection) -> Result<impl Reply, Infallible>
自定义错误处理器
Sourcepub async fn offline_room(&self, room_id: &str, save_data: bool) -> Result<bool>
pub async fn offline_room(&self, room_id: &str, save_data: bool) -> Result<bool>
房间下线 - 优雅关闭房间
- 通知所有客户端房间即将关闭
- 等待客户端完成当前操作
- 保存数据(可选)
- 清理资源
Sourcepub async fn force_offline_room(&self, room_id: &str) -> Result<bool>
pub async fn force_offline_room(&self, room_id: &str) -> Result<bool>
强制房间下线 - 紧急情况使用
Sourcepub async fn offline_rooms(
&self,
room_ids: &[String],
save_data: bool,
) -> Result<Vec<(String, bool)>>
pub async fn offline_rooms( &self, room_ids: &[String], save_data: bool, ) -> Result<Vec<(String, bool)>>
批量下线房间
Sourcepub fn get_active_rooms(&self) -> Vec<String>
pub fn get_active_rooms(&self) -> Vec<String>
获取所有活跃房间列表
Sourcepub async fn get_rooms_stats(&self) -> Vec<RoomInfo>
pub async fn get_rooms_stats(&self) -> Vec<RoomInfo>
获取房间统计信息
Sourcepub async fn offline_rooms_by_condition<F>(
&self,
condition: F,
save_data: bool,
) -> Result<Vec<String>>
pub async fn offline_rooms_by_condition<F>( &self, condition: F, save_data: bool, ) -> Result<Vec<String>>
根据条件下线房间 例如:下线空闲时间超过指定时间的房间、下线没有客户端的房间等
Sourcepub async fn offline_empty_rooms(&self, save_data: bool) -> Result<Vec<String>>
pub async fn offline_empty_rooms(&self, save_data: bool) -> Result<Vec<String>>
下线空房间(没有客户端连接的房间)
Sourcepub async fn offline_inactive_rooms(
&self,
inactive_duration: Duration,
save_data: bool,
) -> Result<Vec<String>>
pub async fn offline_inactive_rooms( &self, inactive_duration: Duration, save_data: bool, ) -> Result<Vec<String>>
下线长时间未活动的房间
Sourcepub fn sync_service(&self) -> &Arc<SyncService> ⓘ
pub fn sync_service(&self) -> &Arc<SyncService> ⓘ
获取 SyncService 的引用,用于外部操作
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for CollaborationServer
impl !UnwindSafe for CollaborationServer
impl Freeze for CollaborationServer
impl Send for CollaborationServer
impl Sync for CollaborationServer
impl Unpin for CollaborationServer
impl UnsafeUnpin for CollaborationServer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more