This commit is contained in:
kozabrada123 2024-01-19 13:46:51 +01:00
parent 4ab5186cb6
commit 13ef3e40a8
3 changed files with 27 additions and 10 deletions

View File

@ -69,7 +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"
wasm-glue = "0.1.0" web-sys = "0.3.67"
[dev-dependencies] [dev-dependencies]
lazy_static = "1.4.0" lazy_static = "1.4.0"

View File

@ -29,7 +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 {
println!("HBH: Creating new 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();
@ -41,7 +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;
}); });
println!("HBH: Spawned task"); #[cfg(target_arch = "wasm32")]
web_sys::console::log_1("HBH: Spawned task");
Self { Self {
heartbeat_interval, heartbeat_interval,
@ -59,17 +62,25 @@ impl HeartbeatHandler {
mut receive: Receiver<HeartbeatThreadCommunication>, mut receive: Receiver<HeartbeatThreadCommunication>,
mut kill_receive: tokio::sync::broadcast::Receiver<()>, mut kill_receive: tokio::sync::broadcast::Receiver<()>,
) { ) {
println!("HBH: Running task"); #[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;
println!("HBH: Initialized variables"); #[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"); 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"); println!("HBH: dying");
trace!("GW: Closing heartbeat task"); trace!("GW: Closing heartbeat task");
break; break;
@ -84,6 +95,9 @@ 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"); println!("HBH: L1");
tokio::select! { tokio::select! {
@ -112,11 +126,17 @@ impl HeartbeatHandler {
} }
} }
#[cfg(target_arch = "wasm32")]
web_sys::console::log_1("HBH: L2");
println!("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"); println!("HBH: L3, sending");
let heartbeat = types::GatewayHeartbeat { let heartbeat = types::GatewayHeartbeat {
@ -138,7 +158,8 @@ impl HeartbeatHandler {
last_heartbeat_timestamp = time::Instant::now(); last_heartbeat_timestamp = time::Instant::now();
last_heartbeat_acknowledged = false; last_heartbeat_acknowledged = false;
println!("HBH: L4, sending done"); #[cfg(target_arch = "wasm32")]
web_sys::console::log_1("HBH: L4, sending done");
} }
} }
} }

View File

@ -26,10 +26,6 @@ async fn test_gateway_establish() {
async fn test_gateway_authenticate() { async fn test_gateway_authenticate() {
let bundle = common::setup().await; let bundle = common::setup().await;
// Make println! work
#[cfg(target_arch = "wasm32")]
wasm_glue::hook();
let gateway: GatewayHandle = Gateway::spawn(bundle.urls.wss.clone()).await.unwrap(); let gateway: GatewayHandle = Gateway::spawn(bundle.urls.wss.clone()).await.unwrap();
let mut identify = types::GatewayIdentifyPayload::common(); let mut identify = types::GatewayIdentifyPayload::common();