pub struct ChannelManager { /* private fields */ }
Expand description
High-performance channel manager for WebSocket channel operations
Implementations§
Source§impl ChannelManager
impl ChannelManager
Sourcepub async fn create_channel(
&self,
name: String,
channel_type: ChannelType,
created_by: Option<ConnectionId>,
) -> WebSocketResult<ChannelId>
pub async fn create_channel( &self, name: String, channel_type: ChannelType, created_by: Option<ConnectionId>, ) -> WebSocketResult<ChannelId>
Create a new channel
Sourcepub async fn create_channel_with_metadata(
&self,
metadata: ChannelMetadata,
) -> WebSocketResult<ChannelId>
pub async fn create_channel_with_metadata( &self, metadata: ChannelMetadata, ) -> WebSocketResult<ChannelId>
Create a channel with custom metadata
Sourcepub async fn delete_channel(&self, channel_id: ChannelId) -> WebSocketResult<()>
pub async fn delete_channel(&self, channel_id: ChannelId) -> WebSocketResult<()>
Delete a channel
Sourcepub async fn get_channel(&self, channel_id: ChannelId) -> Option<Arc<Channel>>
pub async fn get_channel(&self, channel_id: ChannelId) -> Option<Arc<Channel>>
Get a channel by ID
Sourcepub async fn get_channel_by_name(&self, name: &str) -> Option<Arc<Channel>>
pub async fn get_channel_by_name(&self, name: &str) -> Option<Arc<Channel>>
Get a channel by name
Sourcepub async fn get_all_channels(&self) -> Vec<Arc<Channel>>
pub async fn get_all_channels(&self) -> Vec<Arc<Channel>>
Get all channels
Sourcepub async fn get_connection_channels(
&self,
connection_id: ConnectionId,
) -> Vec<Arc<Channel>>
pub async fn get_connection_channels( &self, connection_id: ConnectionId, ) -> Vec<Arc<Channel>>
Get channels that a connection is a member of
Sourcepub async fn join_channel(
&self,
channel_id: ChannelId,
connection_id: ConnectionId,
password: Option<&str>,
nickname: Option<String>,
) -> WebSocketResult<()>
pub async fn join_channel( &self, channel_id: ChannelId, connection_id: ConnectionId, password: Option<&str>, nickname: Option<String>, ) -> WebSocketResult<()>
Join a connection to a channel
Sourcepub async fn leave_channel(
&self,
channel_id: ChannelId,
connection_id: ConnectionId,
) -> WebSocketResult<()>
pub async fn leave_channel( &self, channel_id: ChannelId, connection_id: ConnectionId, ) -> WebSocketResult<()>
Remove a connection from a channel
Sourcepub async fn leave_all_channels(
&self,
connection_id: ConnectionId,
) -> Vec<ChannelId>
pub async fn leave_all_channels( &self, connection_id: ConnectionId, ) -> Vec<ChannelId>
Remove a connection from all channels (useful for cleanup on disconnect)
Sourcepub async fn send_to_channel(
&self,
channel_id: ChannelId,
sender_id: ConnectionId,
message: WebSocketMessage,
) -> WebSocketResult<Vec<ConnectionId>>
pub async fn send_to_channel( &self, channel_id: ChannelId, sender_id: ConnectionId, message: WebSocketMessage, ) -> WebSocketResult<Vec<ConnectionId>>
Send a message to a channel
Sourcepub async fn get_all_channel_stats(&self) -> Vec<ChannelStats>
pub async fn get_all_channel_stats(&self) -> Vec<ChannelStats>
Get channel statistics for all channels
Sourcepub async fn get_public_channels(&self) -> Vec<ChannelStats>
pub async fn get_public_channels(&self) -> Vec<ChannelStats>
Get public channels for discovery
Sourcepub async fn stats(&self) -> ChannelManagerStats
pub async fn stats(&self) -> ChannelManagerStats
Get manager statistics
Sourcepub async fn cleanup_empty_channels(&self) -> usize
pub async fn cleanup_empty_channels(&self) -> usize
Clean up empty channels
Sourcepub async fn add_event_handler<F>(&self, handler: F)
pub async fn add_event_handler<F>(&self, handler: F)
Add an event handler
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ChannelManager
impl !RefUnwindSafe for ChannelManager
impl Send for ChannelManager
impl Sync for ChannelManager
impl Unpin for ChannelManager
impl !UnwindSafe for ChannelManager
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