summaryrefslogtreecommitdiff
path: root/server/src/main.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-08-10 20:57:06 +0200
committermetamuffin <metamuffin@disroot.org>2024-08-10 20:57:06 +0200
commit7dbb34febaf75572f99fee459a77cf917de05d8f (patch)
tree72ba067aa5003d110f2bb707fb3e9c429388505b /server/src/main.rs
parent3d13c85ec2e3acbee249b4baf20797cc38a8a121 (diff)
downloadhurrycurry-7dbb34febaf75572f99fee459a77cf917de05d8f.tar
hurrycurry-7dbb34febaf75572f99fee459a77cf917de05d8f.tar.bz2
hurrycurry-7dbb34febaf75572f99fee459a77cf917de05d8f.tar.zst
Change protocol and server to allow multiple players per connection (untested)
Diffstat (limited to 'server/src/main.rs')
-rw-r--r--server/src/main.rs13
1 files changed, 6 insertions, 7 deletions
diff --git a/server/src/main.rs b/server/src/main.rs
index f43f668b..bf203b6f 100644
--- a/server/src/main.rs
+++ b/server/src/main.rs
@@ -18,8 +18,8 @@
use anyhow::{anyhow, Result};
use clap::Parser;
use futures_util::{SinkExt, StreamExt};
-use hurrycurry_protocol::{PacketC, PacketS, PlayerID, BINCODE_CONFIG, VERSION};
-use hurrycurry_server::{data::DATA_DIR, state::State};
+use hurrycurry_protocol::{PacketC, PacketS, BINCODE_CONFIG, VERSION};
+use hurrycurry_server::{data::DATA_DIR, state::State, ConnectionID};
use log::{debug, info, trace, warn, LevelFilter};
use std::{
net::SocketAddr,
@@ -115,7 +115,7 @@ async fn run(addr: SocketAddr) -> anyhow::Result<()> {
});
}
- for id in (1..).map(PlayerID) {
+ for id in (1..).map(ConnectionID) {
let (sock, addr) = ws_listener.accept().await?;
let Ok(sock) = tokio_tungstenite::accept_async(sock).await else {
warn!("invalid ws handshake");
@@ -137,7 +137,6 @@ async fn run(addr: SocketAddr) -> anyhow::Result<()> {
supports_bincode: true,
},
);
- init.insert(1, PacketC::Init { id });
let supports_binary = Arc::new(AtomicBool::new(false));
let supports_binary2 = supports_binary.clone();
@@ -185,7 +184,7 @@ async fn run(addr: SocketAddr) -> anyhow::Result<()> {
});
spawn(async move {
- info!("{id:?} joined");
+ info!("{id:?} connected");
while let Some(Ok(message)) = read.next().await {
let packet = match message {
Message::Text(line) => match serde_json::from_str(&line) {
@@ -230,8 +229,8 @@ async fn run(addr: SocketAddr) -> anyhow::Result<()> {
let _ = error_tx.send(packet).await;
}
}
- info!("{id:?} left");
- state.write().await.packet_in(id, PacketS::Leave).await.ok();
+ info!("{id:?} disconnected");
+ let _ = state.write().await.disconnect(id).await;
});
}
Ok(())