add websocket stub
This commit is contained in:
parent
109e06ecad
commit
5ca8dd4c84
3 changed files with 24 additions and 2 deletions
|
@ -20,5 +20,5 @@ clap = { version = "3.0.0-rc.8", features = ["derive"] }
|
|||
chrono = { version = "0.4", features = ["serde"] }
|
||||
|
||||
rust-embed = "6.3.0"
|
||||
axum = "0.4"
|
||||
axum = { version = "0.4", features = ["ws"] }
|
||||
mime_guess = "2"
|
|
@ -1,6 +1,6 @@
|
|||
use axum::{
|
||||
body::{boxed, Full},
|
||||
extract::{Extension, Path},
|
||||
extract::{ws::WebSocket, Extension, Path, WebSocketUpgrade},
|
||||
handler::Handler,
|
||||
http::{header, StatusCode, Uri},
|
||||
response::{IntoResponse, Response},
|
||||
|
@ -36,6 +36,7 @@ pub async fn run(workspace_root: PathBuf) {
|
|||
// build our application with a route
|
||||
let app = Router::new()
|
||||
.route("/", get(index_handler))
|
||||
.route("/ws", get(ws_handler))
|
||||
.route("/api/matches", get(list_matches))
|
||||
.route("/api/matches/:match_id", get(get_match))
|
||||
.fallback(static_handler.into_service())
|
||||
|
@ -50,6 +51,26 @@ pub async fn run(workspace_root: PathBuf) {
|
|||
.unwrap();
|
||||
}
|
||||
|
||||
async fn ws_handler(ws: WebSocketUpgrade) -> impl IntoResponse {
|
||||
ws.on_upgrade(handle_socket)
|
||||
}
|
||||
|
||||
async fn handle_socket(mut socket: WebSocket) {
|
||||
while let Some(msg) = socket.recv().await {
|
||||
let msg = if let Ok(msg) = msg {
|
||||
msg
|
||||
} else {
|
||||
// client disconnected
|
||||
return;
|
||||
};
|
||||
|
||||
if socket.send(msg).await.is_err() {
|
||||
// client disconnected
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
struct MatchData {
|
||||
name: String,
|
||||
|
|
|
@ -20,6 +20,7 @@ export default defineConfig({
|
|||
server: {
|
||||
proxy: {
|
||||
"/api/": "http://localhost:5000",
|
||||
"/ws": "ws://localhost:5000/ws",
|
||||
},
|
||||
},
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue