summaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/src')
-rw-r--r--server/src/main.rs13
-rw-r--r--server/src/protocol.rs1
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 },