Added headers for web sockets
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user