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§

JobUpdate
Job update information
QueueStats
Queue statistics for WebSocket updates
WebSocketState
WebSocket connection state manager

Enums§

AlertSeverity
Alert severity levels
BroadcastMessage
Internal broadcast messages
ClientMessage
Messages sent from client to server
ServerMessage
Messages sent from server to client