Module session

Module session 

Source
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
SessionConfig
Session configuration
SessionManager
Session manager
SessionMetadata
Session metadata
SessionStats
Session statistics

Enums§

SessionState
Session state