From 196280f783f6bd5d6fbd4d17bb0d979431630589 Mon Sep 17 00:00:00 2001 From: prplV Date: Thu, 5 Jun 2025 16:27:22 +0300 Subject: [PATCH] final fix --- noxis-proxy/src/main.rs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/noxis-proxy/src/main.rs b/noxis-proxy/src/main.rs index 3e31775..cc2e93c 100644 --- a/noxis-proxy/src/main.rs +++ b/noxis-proxy/src/main.rs @@ -5,6 +5,7 @@ use axum::{ }, response::IntoResponse, routing::get, + routing::on, Router, }; use std::{ @@ -61,20 +62,18 @@ async fn hello( } async fn handle_socket(mut ws: WebSocket, state: AppState) { - // Подключаемся к Unix-сокету tracing::info!("handle websocket"); - let mut unix_socket = match UnixStream::connect(&state.socket_path).await { - Ok(socket) => socket, - Err(e) => { - eprintln!("Failed to connect to Unix socket: {}", e); - let _ = ws.send(Message::Text("ERROR: Unix socket connection failed".into())).await; - return; - } - }; - // Отправляем сообщения из WS → Unix let ws_receiver = tokio::spawn(async move { while let Some(Ok(msg)) = ws.recv().await { + let mut unix_socket = match UnixStream::connect(&state.socket_path).await { + Ok(socket) => socket, + Err(e) => { + eprintln!("Failed to connect to Unix socket: {}", e); + let _ = ws.send(Message::Text("ERROR: Unix socket connection failed".into())).await; + return; + } + }; if let Message::Text(text) = msg { if let Err(e) = unix_socket.write_all(text.as_bytes()).await { eprintln!("Failed to write to Unix socket: {}", e); @@ -94,5 +93,5 @@ async fn handle_socket(mut ws: WebSocket, state: AppState) { } }); - let _ = ws_receiver.await; // Дожидаемся завершения задачи + let _ = ws_receiver.await; }