final fix
parent
da276b034f
commit
196280f783
|
|
@ -5,6 +5,7 @@ use axum::{
|
||||||
},
|
},
|
||||||
response::IntoResponse,
|
response::IntoResponse,
|
||||||
routing::get,
|
routing::get,
|
||||||
|
routing::on,
|
||||||
Router,
|
Router,
|
||||||
};
|
};
|
||||||
use std::{
|
use std::{
|
||||||
|
|
@ -61,8 +62,10 @@ async fn hello(
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn handle_socket(mut ws: WebSocket, state: AppState) {
|
async fn handle_socket(mut ws: WebSocket, state: AppState) {
|
||||||
// Подключаемся к Unix-сокету
|
|
||||||
tracing::info!("handle websocket");
|
tracing::info!("handle websocket");
|
||||||
|
|
||||||
|
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 {
|
let mut unix_socket = match UnixStream::connect(&state.socket_path).await {
|
||||||
Ok(socket) => socket,
|
Ok(socket) => socket,
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
|
@ -71,10 +74,6 @@ async fn handle_socket(mut ws: WebSocket, state: AppState) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Отправляем сообщения из WS → Unix
|
|
||||||
let ws_receiver = tokio::spawn(async move {
|
|
||||||
while let Some(Ok(msg)) = ws.recv().await {
|
|
||||||
if let Message::Text(text) = msg {
|
if let Message::Text(text) = msg {
|
||||||
if let Err(e) = unix_socket.write_all(text.as_bytes()).await {
|
if let Err(e) = unix_socket.write_all(text.as_bytes()).await {
|
||||||
eprintln!("Failed to write to Unix socket: {}", e);
|
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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue