Module websocket

Source
Expand description

WebSocket implementation for real-time dashboard updates.

This module provides WebSocket functionality for real-time communication between the dashboard frontend and backend. It supports connection management, message broadcasting, and automatic ping/pong for connection health.

§Message Types

The WebSocket API supports several message types for different events:

use hammerwork_web::websocket::{ClientMessage, ServerMessage, AlertSeverity};
use serde_json::json;

// Client messages (sent from browser to server)
let subscribe_msg = ClientMessage::Subscribe {
    event_types: vec!["queue_updates".to_string(), "job_updates".to_string()],
};

let ping_msg = ClientMessage::Ping;

// Server messages (sent from server to browser)
let alert_msg = ServerMessage::SystemAlert {
    message: "High error rate detected".to_string(),
    severity: AlertSeverity::Warning,
};

let pong_msg = ServerMessage::Pong;

§Connection Management

use hammerwork_web::websocket::WebSocketState;
use hammerwork_web::config::WebSocketConfig;

let config = WebSocketConfig::default();
let ws_state = WebSocketState::new(config);

assert_eq!(ws_state.connection_count(), 0);

Structs§

ArchivalStats
Statistics about archival operations.
JobUpdate
Job update information
QueueStats
Queue statistics for WebSocket updates
WebSocketState
WebSocket connection state manager

Enums§

AlertSeverity
Alert severity levels
ArchivalReason
Reasons why a job was archived.
BroadcastMessage
Internal broadcast messages
ClientMessage
Messages sent from client to server
ServerMessage
Messages sent from server to client