diff --git a/tapped/src/channel.rs b/tapped/src/channel.rs index 5de4cd0..6a9b020 100644 --- a/tapped/src/channel.rs +++ b/tapped/src/channel.rs @@ -84,6 +84,9 @@ impl EventReceiver { let tcp_stream = tokio::net::TcpStream::connect(addr).await .map_err(Error::Io)?; + // Enable TCP_NODELAY to ensure low latency for streaming events + let _ = tcp_stream.set_nodelay(true); + let client = WebSocketClient::::new(Config::default()); let ws_stream = if ws_url.scheme() == "wss" { @@ -119,7 +122,8 @@ impl EventReceiver { let (read, write) = ws_stream.split(); - let (event_tx, event_rx) = mpsc::channel(100); + // Buffer size increased to 2048 to prevent TCP window clamping during brief processing spikes + let (event_tx, event_rx) = mpsc::channel(2048); let (ack_tx, ack_rx) = mpsc::channel(1000); let ack_tx_clone = ack_tx.clone();