Compare commits
3 Commits
5dc87f6095
...
13ef3e40a8
Author | SHA1 | Date |
---|---|---|
kozabrada123 | 13ef3e40a8 | |
kozabrada123 | 4ab5186cb6 | |
kozabrada123 | f86d23bac0 |
|
@ -69,6 +69,7 @@ hostname = "0.3.1"
|
||||||
getrandom = { version = "0.2.12", features = ["js"] }
|
getrandom = { version = "0.2.12", features = ["js"] }
|
||||||
ws_stream_wasm = "0.7.4"
|
ws_stream_wasm = "0.7.4"
|
||||||
wasm-bindgen-futures = "0.4.39"
|
wasm-bindgen-futures = "0.4.39"
|
||||||
|
web-sys = "0.3.67"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
|
|
|
@ -29,6 +29,9 @@ impl HeartbeatHandler {
|
||||||
websocket_tx: Arc<Mutex<Sink>>,
|
websocket_tx: Arc<Mutex<Sink>>,
|
||||||
kill_rc: tokio::sync::broadcast::Receiver<()>,
|
kill_rc: tokio::sync::broadcast::Receiver<()>,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
web_sys::console::log_1("HBH: Creating new self");
|
||||||
|
|
||||||
let (send, receive) = tokio::sync::mpsc::channel(32);
|
let (send, receive) = tokio::sync::mpsc::channel(32);
|
||||||
let kill_receive = kill_rc.resubscribe();
|
let kill_receive = kill_rc.resubscribe();
|
||||||
|
|
||||||
|
@ -40,6 +43,8 @@ impl HeartbeatHandler {
|
||||||
wasm_bindgen_futures::spawn_local(async move {
|
wasm_bindgen_futures::spawn_local(async move {
|
||||||
Self::heartbeat_task(websocket_tx, heartbeat_interval, receive, kill_receive).await;
|
Self::heartbeat_task(websocket_tx, heartbeat_interval, receive, kill_receive).await;
|
||||||
});
|
});
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
web_sys::console::log_1("HBH: Spawned task");
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
heartbeat_interval,
|
heartbeat_interval,
|
||||||
|
@ -57,14 +62,26 @@ impl HeartbeatHandler {
|
||||||
mut receive: Receiver<HeartbeatThreadCommunication>,
|
mut receive: Receiver<HeartbeatThreadCommunication>,
|
||||||
mut kill_receive: tokio::sync::broadcast::Receiver<()>,
|
mut kill_receive: tokio::sync::broadcast::Receiver<()>,
|
||||||
) {
|
) {
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
web_sys::console::log_1("HBH: Running task");
|
||||||
let mut last_heartbeat_timestamp: Instant = time::Instant::now();
|
let mut last_heartbeat_timestamp: Instant = time::Instant::now();
|
||||||
let mut last_heartbeat_acknowledged = true;
|
let mut last_heartbeat_acknowledged = true;
|
||||||
let mut last_seq_number: Option<u64> = None;
|
let mut last_seq_number: Option<u64> = None;
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
web_sys::console::log_1("HBH: Initialized variables");
|
||||||
|
|
||||||
safina_timer::start_timer_thread();
|
safina_timer::start_timer_thread();
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
web_sys::console::log_1("HBH: L0");
|
||||||
|
|
||||||
|
println!("HBH: L0");
|
||||||
if kill_receive.try_recv().is_ok() {
|
if kill_receive.try_recv().is_ok() {
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
web_sys::console::log_1("HBH: dying");
|
||||||
|
|
||||||
|
println!("HBH: dying");
|
||||||
trace!("GW: Closing heartbeat task");
|
trace!("GW: Closing heartbeat task");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -78,6 +95,11 @@ impl HeartbeatHandler {
|
||||||
|
|
||||||
let mut should_send = false;
|
let mut should_send = false;
|
||||||
|
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
web_sys::console::log_1("HBH: L1");
|
||||||
|
|
||||||
|
println!("HBH: L1");
|
||||||
|
|
||||||
tokio::select! {
|
tokio::select! {
|
||||||
() = sleep_until(last_heartbeat_timestamp + timeout) => {
|
() = sleep_until(last_heartbeat_timestamp + timeout) => {
|
||||||
should_send = true;
|
should_send = true;
|
||||||
|
@ -104,9 +126,19 @@ impl HeartbeatHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
web_sys::console::log_1("HBH: L2");
|
||||||
|
|
||||||
|
println!("HBH: L2");
|
||||||
|
|
||||||
if should_send {
|
if should_send {
|
||||||
trace!("GW: Sending Heartbeat..");
|
trace!("GW: Sending Heartbeat..");
|
||||||
|
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
web_sys::console::log_1("HBH: L3, sending");
|
||||||
|
|
||||||
|
println!("HBH: L3, sending");
|
||||||
|
|
||||||
let heartbeat = types::GatewayHeartbeat {
|
let heartbeat = types::GatewayHeartbeat {
|
||||||
op: GATEWAY_HEARTBEAT,
|
op: GATEWAY_HEARTBEAT,
|
||||||
d: last_seq_number,
|
d: last_seq_number,
|
||||||
|
@ -125,6 +157,9 @@ impl HeartbeatHandler {
|
||||||
|
|
||||||
last_heartbeat_timestamp = time::Instant::now();
|
last_heartbeat_timestamp = time::Instant::now();
|
||||||
last_heartbeat_acknowledged = false;
|
last_heartbeat_acknowledged = false;
|
||||||
|
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
web_sys::console::log_1("HBH: L4, sending done");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,10 @@ async fn test_gateway_authenticate() {
|
||||||
identify.token = bundle.user.token.clone();
|
identify.token = bundle.user.token.clone();
|
||||||
|
|
||||||
gateway.send_identify(identify).await;
|
gateway.send_identify(identify).await;
|
||||||
common::teardown(bundle).await
|
common::teardown(bundle).await;
|
||||||
|
|
||||||
|
// deliberately fail the test so we get the output
|
||||||
|
assert!(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
|
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
|
||||||
|
|
Loading…
Reference in New Issue