Improve logging in WebSocket server: Enhance connection acceptance and WebSocket handshake messages for better clarity. Update error messages for connection failures and refine logging for TLS and non-TLS connections, ensuring comprehensive diagnostics and user awareness.

This commit is contained in:
Torsten Schulz (local)
2026-01-12 16:54:08 +01:00
parent 1505d3d004
commit e1e4c08d38

View File

@@ -334,8 +334,9 @@ async fn run_accept_loop(
result = listener.accept() => { result = listener.accept() => {
match result { match result {
Ok((stream, peer)) => { Ok((stream, peer)) => {
let peer_addr = peer; let peer_addr = peer;
println!("[WebSocketServer] Client-Verbindungsversuch von {} (TCP-Verbindung etabliert)", peer_addr);
let rx = tx.subscribe(); let rx = tx.subscribe();
let registry_clone = registry.clone(); let registry_clone = registry.clone();
let ws_log_clone = ws_log.clone(); let ws_log_clone = ws_log.clone();
@@ -343,7 +344,7 @@ async fn run_accept_loop(
tokio::spawn(async move { tokio::spawn(async move {
if let Some(acc) = tls_acceptor_clone { if let Some(acc) = tls_acceptor_clone {
println!("[WebSocketServer] Neue TCP-Verbindung von {} (TLS-Handshake wird durchgeführt...)", peer_addr); println!("[WebSocketServer] Starte TLS-Handshake für {}...", peer_addr);
match acc.accept(stream).await { match acc.accept(stream).await {
Ok(tls_stream) => { Ok(tls_stream) => {
println!("[WebSocketServer] TLS-Handshake erfolgreich für {}", peer_addr); println!("[WebSocketServer] TLS-Handshake erfolgreich für {}", peer_addr);
@@ -360,13 +361,13 @@ async fn run_accept_loop(
} }
} }
} else { } else {
println!("[WebSocketServer] Neue TCP-Verbindung von {} (ohne TLS)", peer_addr); println!("[WebSocketServer] Verarbeite Verbindung von {} ohne TLS (Client sollte ws:// verwenden, nicht wss://)", peer_addr);
handle_connection(stream, peer_addr, rx, registry_clone, ws_log_clone).await; handle_connection(stream, peer_addr, rx, registry_clone, ws_log_clone).await;
} }
}); });
} }
Err(e) => { Err(e) => {
eprintln!("[WebSocketServer] accept() fehlgeschlagen: {}", e); eprintln!("[WebSocketServer] Fehler beim Akzeptieren einer Verbindung: {}", e);
// Kurz warten, um CPU-Last zu reduzieren bei wiederholten Fehlern // Kurz warten, um CPU-Last zu reduzieren bei wiederholten Fehlern
tokio::time::sleep(TokioDuration::from_millis(100)).await; tokio::time::sleep(TokioDuration::from_millis(100)).await;
} }
@@ -385,9 +386,10 @@ async fn handle_connection<S>(
) where ) where
S: AsyncRead + AsyncWrite + Unpin + Send + 'static, S: AsyncRead + AsyncWrite + Unpin + Send + 'static,
{ {
println!("[WebSocketServer] Versuche WebSocket-Handshake für {}...", peer_addr);
let ws_stream = match accept_async(stream).await { let ws_stream = match accept_async(stream).await {
Ok(ws) => { Ok(ws) => {
println!("[WebSocketServer] WebSocket-Handshake erfolgreich für {}", peer_addr); println!("[WebSocketServer] WebSocket-Handshake erfolgreich für {} - Verbindung etabliert", peer_addr);
ws ws
} }
Err(e) => { Err(e) => {
@@ -397,8 +399,6 @@ async fn handle_connection<S>(
} }
}; };
println!("[WebSocketServer] Neue WebSocket-Verbindung etabliert von {}", peer_addr);
let (mut ws_sender, mut ws_receiver) = ws_stream.split(); let (mut ws_sender, mut ws_receiver) = ws_stream.split();
// Kanal für Antworten direkt an diesen Client (z.B. getConnections) // Kanal für Antworten direkt an diesen Client (z.B. getConnections)