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
- Queue
Stats - Queue statistics for WebSocket updates
- WebSocket
State - WebSocket connection state manager
Enums§
- Alert
Severity - Alert severity levels
- Broadcast
Message - Internal broadcast messages
- Client
Message - Messages sent from client to server
- Server
Message - Messages sent from server to client