Changeset View
Changeset View
Standalone View
Standalone View
services/tunnelbroker/src/websockets/mod.rs
use crate::CONFIG; | |||||
use futures::future; | use futures::future; | ||||
use futures_util::stream::SplitSink; | use futures_util::stream::SplitSink; | ||||
use futures_util::SinkExt; | use futures_util::SinkExt; | ||||
use futures_util::{StreamExt, TryStreamExt}; | use futures_util::{StreamExt, TryStreamExt}; | ||||
use std::net::SocketAddr; | use std::net::SocketAddr; | ||||
use std::{env, io::Error}; | use std::{env, io::Error}; | ||||
use tokio::net::{TcpListener, TcpStream}; | use tokio::net::{TcpListener, TcpStream}; | ||||
use tokio::sync::mpsc; | use tokio::sync::mpsc; | ||||
use tokio_tungstenite::tungstenite::Message; | use tokio_tungstenite::tungstenite::Message; | ||||
use tokio_tungstenite::WebSocketStream; | use tokio_tungstenite::WebSocketStream; | ||||
use tracing::{debug, error, info}; | use tracing::{debug, error, info}; | ||||
use tunnelbroker_messages::messages::Messages; | use tunnelbroker_messages::messages::Messages; | ||||
use crate::ACTIVE_CONNECTIONS; | use crate::ACTIVE_CONNECTIONS; | ||||
pub async fn run_server() -> Result<(), Error> { | pub async fn run_server() -> Result<(), Error> { | ||||
let addr = env::var("COMM_TUNNELBROKER_WEBSOCKET_ADDR") | let addr = env::var("COMM_TUNNELBROKER_WEBSOCKET_ADDR") | ||||
.unwrap_or_else(|_| "127.0.0.1:51001".to_string()); | .unwrap_or_else(|_| format!("127.0.0.1:{}", &CONFIG.http_port)); | ||||
let listener = TcpListener::bind(&addr).await.expect("Failed to bind"); | let listener = TcpListener::bind(&addr).await.expect("Failed to bind"); | ||||
info!("Listening on: {}", addr); | info!("Listening on: {}", addr); | ||||
while let Ok((stream, addr)) = listener.accept().await { | while let Ok((stream, addr)) = listener.accept().await { | ||||
tokio::spawn(accept_connection(stream, addr)); | tokio::spawn(accept_connection(stream, addr)); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 80 Lines • Show Last 20 Lines |