demo code, needs some work to be more stable
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ fn get_ws_url() -> String {
|
||||
"ws"
|
||||
};
|
||||
|
||||
format!("{}://{}/ws", protocol, location.host().unwrap())
|
||||
format!("wss://{}/ws", location.host().unwrap())
|
||||
}
|
||||
|
||||
mod modname {}
|
||||
|
||||
Reference in New Issue
Block a user