demo code, needs some work to be more stable
This commit is contained in:
7 files changed
+46
-28
No files matched your search
@@ -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