Revert "added webapi sketch"

This reverts commit b3e25cd706.
This commit is contained in:
peppidesu 2024-10-19 15:37:51 +02:00
parent 0fd67e0c6e
commit a1f7b3ab52
No known key found for this signature in database
GPG key ID: 4E9BA776E329260F
5 changed files with 32 additions and 849 deletions

793
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -6,21 +6,13 @@ edition = "2021"
[dependencies]
async-trait = "0.1.83"
atoi_radix10 = "0.0.1"
axum = { version = "0.7.7", features = ["ws"] }
axum-extra = { version = "0.9.4", features = ["typed-header"] }
bytes = "1.6.0"
chrono = "0.4.38"
debug_print = "1.0.0"
futures = "0.3.31"
futures-util = { version = "0.3.31", features = ["sink", "std"] }
headers = "0.4.0"
image = "0.25.2"
rand = "*"
tokio = { version = "1.38", features = ["full"] }
tokio-test = "*"
tower-http = { version = "0.6.1", features = ["fs", "trace"] }
tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
[dev-dependencies]
tempfile = "*"

View file

@ -12,7 +12,6 @@ pub mod flutclient;
pub mod grid;
pub mod protocols;
pub mod utils;
pub mod webapi;
mod color;

View file

@ -11,8 +11,9 @@ use flurry::{
COUNTER,
};
use tokio::{
io::{AsyncReadExt, AsyncWriteExt, BufReader, BufWriter},
net::TcpListener,
time::interval
time::{interval, sleep, timeout, Instant},
};
type Never = Infallible;

View file

@ -1,76 +0,0 @@
use std::net::SocketAddr;
use axum::{
extract::{ws::{Message, WebSocket, WebSocketUpgrade}, ConnectInfo},
response::IntoResponse,
routing::any,
Router,
};
use axum_extra::TypedHeader;
use futures::StreamExt;
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
use tower_http::{
services::ServeDir,
trace::{DefaultMakeSpan, TraceLayer},
};
async fn serve() {
// diagnostics
tracing_subscriber::registry()
.with(
tracing_subscriber::EnvFilter::try_from_default_env().unwrap_or_else(|_| {
format!("{}=debug,tower_http=debug", env!("CARGO_CRATE_NAME")).into()
}),
)
.with(tracing_subscriber::fmt::layer())
.init();
let app = Router::new()
.route("/imgstream", any(ws_handler))
// logging middleware
.layer(
TraceLayer::new_for_http()
.make_span_with(DefaultMakeSpan::default().include_headers(true)),
);
// run it with hyper
let listener = tokio::net::TcpListener::bind("127.0.0.1:3000")
.await
.unwrap();
tracing::debug!("listening on {}", listener.local_addr().unwrap());
axum::serve(
listener,
app.into_make_service_with_connect_info::<SocketAddr>(),
)
.await
.unwrap();
}
async fn ws_handler(
ws: WebSocketUpgrade,
user_agent: Option<TypedHeader<headers::UserAgent>>,
ConnectInfo(addr): ConnectInfo<SocketAddr>,
) -> impl IntoResponse {
let user_agent = if let Some(TypedHeader(user_agent)) = user_agent {
user_agent.to_string()
} else {
String::from("Unknown browser")
};
println!("`{user_agent}` at {addr} connected.");
// finalize the upgrade process by returning upgrade callback.
// we can customize the callback by sending additional info such as address.
ws.on_upgrade(move |socket| img_stream(socket, addr))
}
async fn img_stream(mut socket: WebSocket, who: SocketAddr) {
let (mut sender, mut receiver) = socket.split();
while true {
}
}