pub struct DefaultServerHandle { /* private fields */ }Expand description
ServerHandle 的默认实现
基于连接管理器和消息解析器实现,轻量级且易于使用
§示例
use flare_core::server::DefaultServerHandle;
use flare_core::server::connection::ConnectionManager;
use flare_core::server::ConnectionManagerTrait;
use std::sync::Arc;
let connection_manager = Arc::new(ConnectionManager::new());
let handle = Arc::new(DefaultServerHandle::new(
connection_manager as Arc<dyn ConnectionManagerTrait>,
));Implementations§
Trait Implementations§
Source§impl ServerHandle for DefaultServerHandle
impl ServerHandle for DefaultServerHandle
Source§fn send_to<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
connection_id: &'life1 str,
frame: &'life2 Frame,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn send_to<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
connection_id: &'life1 str,
frame: &'life2 Frame,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
向指定连接发送消息 Read more
Source§fn send_to_connections<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
connection_ids: &'life1 [String],
frame: &'life2 Frame,
) -> Pin<Box<dyn Future<Output = (i32, i32)> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn send_to_connections<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
connection_ids: &'life1 [String],
frame: &'life2 Frame,
) -> Pin<Box<dyn Future<Output = (i32, i32)> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
同一 Frame 发送到多个连接(群扇出主路径)。
默认逐连接;带连接管理器的实现按(序列化格式, 压缩)分组、
每组序列化一次共享给组内无加密连接。返回(成功数, 失败数)。
Source§fn send_to_user<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
frame: &'life2 Frame,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn send_to_user<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
frame: &'life2 Frame,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
向指定用户的所有连接发送消息 Read more
Source§fn broadcast<'life0, 'life1, 'async_trait>(
&'life0 self,
frame: &'life1 Frame,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn broadcast<'life0, 'life1, 'async_trait>(
&'life0 self,
frame: &'life1 Frame,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
广播消息到所有连接 Read more
Source§fn broadcast_except<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
frame: &'life1 Frame,
exclude_connection_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn broadcast_except<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
frame: &'life1 Frame,
exclude_connection_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
广播消息到所有连接,排除指定的连接 Read more
Source§fn disconnect<'life0, 'life1, 'async_trait>(
&'life0 self,
connection_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn disconnect<'life0, 'life1, 'async_trait>(
&'life0 self,
connection_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
断开指定连接 Read more
Source§fn connection_count(&self) -> usize
fn connection_count(&self) -> usize
获取连接数量 Read more
Source§fn user_count(&self) -> usize
fn user_count(&self) -> usize
获取用户数量 Read more
Auto Trait Implementations§
impl !RefUnwindSafe for DefaultServerHandle
impl !UnwindSafe for DefaultServerHandle
impl Freeze for DefaultServerHandle
impl Send for DefaultServerHandle
impl Sync for DefaultServerHandle
impl Unpin for DefaultServerHandle
impl UnsafeUnpin for DefaultServerHandle
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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