pub struct LoggingHandler;Expand description
A simple handler that accepts all connections and logs events
Trait Implementations§
Source§impl RtmpHandler for LoggingHandler
impl RtmpHandler for LoggingHandler
Source§fn on_connection<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 SessionContext,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_connection<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 SessionContext,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when a new TCP connection is established Read more
Source§fn on_connect<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 SessionContext,
params: &'life2 ConnectParams,
) -> Pin<Box<dyn Future<Output = AuthResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_connect<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 SessionContext,
params: &'life2 ConnectParams,
) -> Pin<Box<dyn Future<Output = AuthResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called on RTMP ‘connect’ command Read more
Source§fn on_publish<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 SessionContext,
params: &'life2 PublishParams,
) -> Pin<Box<dyn Future<Output = AuthResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_publish<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 SessionContext,
params: &'life2 PublishParams,
) -> Pin<Box<dyn Future<Output = AuthResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called on ‘publish’ command Read more
Source§fn on_metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 StreamContext,
metadata: &'life2 HashMap<String, AmfValue>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 StreamContext,
metadata: &'life2 HashMap<String, AmfValue>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called when stream metadata is received (@setDataFrame/onMetaData)
Source§fn on_disconnect<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 SessionContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_disconnect<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 SessionContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when the connection closes
Source§fn on_handshake_complete<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 SessionContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_handshake_complete<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 SessionContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called after successful handshake, before connect command
Source§fn on_fc_publish<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 SessionContext,
_stream_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = AuthResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_fc_publish<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 SessionContext,
_stream_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = AuthResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called on FCPublish command (OBS/Twitch compatibility) Read more
Source§fn on_play<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 SessionContext,
_params: &'life2 PlayParams,
) -> Pin<Box<dyn Future<Output = AuthResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_play<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 SessionContext,
_params: &'life2 PlayParams,
) -> Pin<Box<dyn Future<Output = AuthResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called on ‘play’ command Read more
Source§fn on_media_tag<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
_tag: &'life2 FlvTag,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_media_tag<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
_tag: &'life2 FlvTag,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called for each raw FLV tag (when MediaDeliveryMode includes RawFlv) Read more
Source§fn on_video_frame<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
_frame: &'life2 H264Data,
_timestamp: u32,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_video_frame<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
_frame: &'life2 H264Data,
_timestamp: u32,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called for each video frame (when MediaDeliveryMode includes ParsedFrames)
Source§fn on_audio_frame<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
_frame: &'life2 AacData,
_timestamp: u32,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_audio_frame<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
_frame: &'life2 AacData,
_timestamp: u32,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called for each audio frame (when MediaDeliveryMode includes ParsedFrames)
Source§fn on_keyframe<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
_timestamp: u32,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_keyframe<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
_timestamp: u32,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when a keyframe is received
Source§fn on_publish_stop<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_publish_stop<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when the publish stream ends
Source§fn on_play_stop<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_play_stop<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when the play stream ends
Source§fn on_pause<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_pause<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when a subscriber pauses playback
Source§fn on_unpause<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_unpause<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 StreamContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when a subscriber resumes playback
Source§fn media_delivery_mode(&self) -> MediaDeliveryMode
fn media_delivery_mode(&self) -> MediaDeliveryMode
Get the media delivery mode for this handler
Source§fn on_stats_update<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 SessionContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_stats_update<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 SessionContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called periodically with stats update
Auto Trait Implementations§
impl Freeze for LoggingHandler
impl RefUnwindSafe for LoggingHandler
impl Send for LoggingHandler
impl Sync for LoggingHandler
impl Unpin for LoggingHandler
impl UnwindSafe for LoggingHandler
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