demo code, needs some work to be more stable

This commit is contained in:
2025-05-27 18:43:02 -06:00
parent 88ce6db3aa
commit ef4602a062
7 changed files with 46 additions and 28 deletions
+5 -5
View File
@@ -32,11 +32,11 @@
load("./static/frontend_bg.wasm");
}
window.run = function (join_type) {
console.log("Joining as: ", join_type);
console.log("Joining as:", join_type);
var xhr = new XMLHttpRequest();
xhr.open("POST", "./login/" + join_type);
xhr.onload = function (event) {
console.log("Starting game...", event.target);
console.log("Starting game...", event);
document.getElementById("run-container").remove();
document
.getElementById("glcanvas")
@@ -46,7 +46,7 @@
};
// or onerror, onabort
var formData = new FormData(document.getElementById("login"));
xhr.send(JSON.stringify(Object.fromEntries(formData));
xhr.send(JSON.stringify(Object.fromEntries(formData)));
};
</script>
<div
@@ -62,8 +62,8 @@
<form id="login">
<label for="username">Username:</label><br />
<input type="text" id="username" name="username" /><br />
<label for="gamecode">Gamecode:</label><br />
<input type="text" id="gamecode" name="gamecode" /><br />
<label for="game_code">Gamecode:</label><br />
<input type="text" id="game_code" name="game_code" /><br />
</form>
<button onclick="run('join')">Join Game</button>
<button onclick="run('host')">Host Game</button>
+2 -5
View File
@@ -16,6 +16,7 @@ pub struct Context {
impl Context {
pub fn new(url: &str, cfg: Cfg) -> Context {
info!("Connecting to web socket server @ {}", url);
let (sender, reciever) = ewebsock::connect(url, ewebsock::Options::default()).unwrap();
Self {
@@ -42,11 +43,7 @@ impl Context {
None
}
WsEvent::Message(ws_message) => match ws_message {
ewebsock::WsMessage::Text(msg) => {
let game_resp: T = serde_json::from_str(&msg).unwrap();
Some(game_resp)
}
ewebsock::WsMessage::Text(msg) => serde_json::from_str(&msg).ok(),
_ => None,
},
WsEvent::Error(err) => {
+3 -5
View File
@@ -29,7 +29,7 @@ pub enum NewUserServerMessages {
#[derive(Default)]
pub struct LoginScreen {
sent_join: bool,
retry_count: usize,
retry_time: f64,
}
impl Screen for LoginScreen {
@@ -60,6 +60,7 @@ impl Screen for LoginScreen {
info!("Sending join request...");
ctx.send_msg(&msg);
self.retry_time = get_time() + 2.0;
}
}
@@ -78,11 +79,8 @@ impl Screen for LoginScreen {
}
}
self.retry_count += 1;
if self.retry_count > (get_fps() as usize * 100) {
if get_time() > self.retry_time {
warn!("Join failed, try again...");
self.retry_count = 0;
self.sent_join = false;
}
}
+1 -1
View File
@@ -112,7 +112,7 @@ fn get_ws_url() -> String {
"ws"
};
format!("{}://{}/ws", protocol, location.host().unwrap())
format!("wss://{}/ws", location.host().unwrap())
}
mod modname {}