Expand description
Connection Session Management
This module provides utilities for tracking connection sessions and their lifecycles.
§Features
- Track active connection sessions with metadata
- Session lifecycle management (created, active, idle, closing, closed)
- Idle timeout detection
- Session statistics and metrics
- Callback hooks for lifecycle events
§Example
use ipfrs_network::session::{SessionManager, SessionConfig, SessionState};
use libp2p::PeerId;
use std::time::Duration;
let config = SessionConfig {
idle_timeout: Duration::from_secs(300),
max_sessions: 1000,
..Default::default()
};
let mut manager = SessionManager::new(config);
// Create a new session
let peer_id = PeerId::random();
manager.create_session(peer_id);
// Check session state
if let Some(session) = manager.get_session(&peer_id) {
println!("Session state: {:?}", session.state);
println!("Duration: {:?}", session.duration());
}
// Update activity
manager.mark_activity(&peer_id);
// Close session
manager.close_session(&peer_id);Structs§
- Session
- Connection session information
- Session
Config - Session configuration
- Session
Manager - Session manager
- Session
Metadata - Session metadata
- Session
Stats - Session statistics
Enums§
- Session
State - Session state