Added headers for web sockets

This commit is contained in:
2026-04-15 00:08:52 +03:00
parent 2be94dbe2d
commit 983199966e

View File

@@ -3,7 +3,10 @@ use futures_util::{
stream::{SplitSink, SplitStream},
};
use tokio::net::TcpStream;
use tokio_tungstenite::{MaybeTlsStream, WebSocketStream, connect_async, tungstenite::Message};
use tokio_tungstenite::{
MaybeTlsStream, WebSocketStream, connect_async,
tungstenite::{Message, http::Request},
};
use crate::settings::Result;
@@ -22,14 +25,20 @@ impl ServerSocketProxyService for TokioTungsteniteSocketProxy {
type Reciever = TokioTungsteniteSocketReciever;
async fn connect(req: HttpRequest, connection: Connection) -> Result<Self> {
let url = format!(
let uri = format!(
"{}://{}:{}{}",
connection.protocol.replace("http", "ws"),
connection.ip_address,
connection.port,
req.path
);
let (ws_stream, _) = connect_async(url).await?;
let mut request_builder = Request::builder().uri(uri);
for (key, value) in req.headers {
request_builder = request_builder.header(key, value);
}
let (ws_stream, _) = connect_async(request_builder.body(())?).await?;
let (ses, stream) = ws_stream.split();