diff options
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/main.rs | 13 | ||||
-rw-r--r-- | server/src/protocol.rs | 1 |
2 files changed, 12 insertions, 2 deletions
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 }, |