From e37231630488e5b54741d68edc45890a62c5610d Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 17 Jun 2024 00:30:38 +0200 Subject: client connects and can speak proto --- server/src/main.rs | 13 +++++++++++-- server/src/protocol.rs | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'server/src') diff --git a/server/src/main.rs b/server/src/main.rs index 0987e9ef..763ff03b 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -52,6 +52,11 @@ async fn main() -> Result<()> { let mut rx = rx.resubscribe(); info!("{addr} connected"); spawn(async move { + write + .write_all(serde_json::to_string(&PacketC::Joined { id }).unwrap().as_bytes()) + .await + .unwrap(); + write.write_all(b"\n").await.unwrap(); while let Ok(packet) = rx.recv().await { write .write_all(serde_json::to_string(&packet).unwrap().as_bytes()) @@ -70,7 +75,6 @@ async fn main() -> Result<()> { }); } r = ws_listener.accept() => { - // let (sock, addr) = ws_listener.accept().await?; let (sock, addr) = r?; let sock = tokio_tungstenite::accept_async(sock).await?; let (mut write, mut read) = sock.split(); @@ -78,6 +82,12 @@ async fn main() -> Result<()> { let mut rx = rx.resubscribe(); info!("{addr} connected via ws"); spawn(async move { + write + .send(tokio_tungstenite::tungstenite::Message::Text( + serde_json::to_string(&PacketC::Joined { id }).unwrap(), + )) + .await + .unwrap(); while let Ok(packet) = rx.recv().await { write .send(tokio_tungstenite::tungstenite::Message::Text( @@ -97,6 +107,5 @@ async fn main() -> Result<()> { } } } - Ok(()) } diff --git a/server/src/protocol.rs b/server/src/protocol.rs index 93d2afe9..dc2af7d6 100644 --- a/server/src/protocol.rs +++ b/server/src/protocol.rs @@ -21,6 +21,7 @@ pub enum PacketS { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] pub enum PacketC { + Joined { id: ID }, AddPlayer { id: ID, name: String }, RemovePlayer { id: ID }, Position { player: ID, pos: Vec2, rot: f32 }, -- cgit v1.2.3-70-g09d2