pub struct Broadcaster { /* private fields */ }Expand description
The broadcaster manages channels and client connections.
Implementations§
Source§impl Broadcaster
impl Broadcaster
Sourcepub fn with_config(config: BroadcastConfig) -> Self
pub fn with_config(config: BroadcastConfig) -> Self
Create a new broadcaster with the given configuration.
Set the channel authorizer.
Sourcepub fn config(&self) -> &BroadcastConfig
pub fn config(&self) -> &BroadcastConfig
Get the configuration.
Sourcepub fn add_client(&self, socket_id: String, sender: Sender<ServerMessage>)
pub fn add_client(&self, socket_id: String, sender: Sender<ServerMessage>)
Register a new client connection.
Sourcepub fn remove_client(&self, socket_id: &str)
pub fn remove_client(&self, socket_id: &str)
Remove a client and clean up their subscriptions.
Sourcepub async fn subscribe(
&self,
socket_id: &str,
channel_name: &str,
auth: Option<&str>,
member_info: Option<PresenceMember>,
) -> Result<(), Error>
pub async fn subscribe( &self, socket_id: &str, channel_name: &str, auth: Option<&str>, member_info: Option<PresenceMember>, ) -> Result<(), Error>
Subscribe a client to a channel.
Sourcepub async fn unsubscribe(&self, socket_id: &str, channel_name: &str)
pub async fn unsubscribe(&self, socket_id: &str, channel_name: &str)
Unsubscribe a client from a channel.
Sourcepub async fn broadcast<T: Serialize>(
&self,
channel: &str,
event: &str,
data: T,
) -> Result<(), Error>
pub async fn broadcast<T: Serialize>( &self, channel: &str, event: &str, data: T, ) -> Result<(), Error>
Broadcast a message to a channel.
Sourcepub async fn whisper(
&self,
socket_id: &str,
channel_name: &str,
event: &str,
data: Value,
) -> Result<(), Error>
pub async fn whisper( &self, socket_id: &str, channel_name: &str, event: &str, data: Value, ) -> Result<(), Error>
Forward a client event (whisper) to other subscribers of the same channel.
Used for client-to-client messaging such as typing indicators and cursor positions.
Only works when allow_client_events is enabled in configuration.
The sender is excluded from receiving the whispered message.
Sourcepub async fn broadcast_except<T: Serialize>(
&self,
channel: &str,
event: &str,
data: T,
except_socket_id: &str,
) -> Result<(), Error>
pub async fn broadcast_except<T: Serialize>( &self, channel: &str, event: &str, data: T, except_socket_id: &str, ) -> Result<(), Error>
Broadcast to a channel, excluding a specific client.
Sourcepub async fn check_auth(&self, auth_data: &AuthData) -> bool
pub async fn check_auth(&self, auth_data: &AuthData) -> bool
Check if a client would be authorized for a channel.
Returns true if:
- Channel is public (no auth needed)
- Channel is private/presence AND authorizer returns true
Returns false if:
- Channel is private/presence AND no authorizer registered
- Channel is private/presence AND authorizer denies access
Used by the broadcasting auth HTTP endpoint to validate authorization without subscribing the client.
Sourcepub fn get_channel(&self, name: &str) -> Option<ChannelInfo>
pub fn get_channel(&self, name: &str) -> Option<ChannelInfo>
Get channel info.
Sourcepub fn client_count(&self) -> usize
pub fn client_count(&self) -> usize
Get number of connected clients.
Sourcepub fn channel_count(&self) -> usize
pub fn channel_count(&self) -> usize
Get number of active channels.
Trait Implementations§
Source§impl Clone for Broadcaster
impl Clone for Broadcaster
Source§fn clone(&self) -> Broadcaster
fn clone(&self) -> Broadcaster
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more