From 37e5f8149fa8a544ee6955abb4d6fb0b4fccc053 Mon Sep 17 00:00:00 2001 From: magine Date: Tue, 19 Mar 2024 11:49:49 +0800 Subject: [PATCH] Fix dummy test datachannel callback behaviour --- crates/transport/src/connections/dummy/mod.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/crates/transport/src/connections/dummy/mod.rs b/crates/transport/src/connections/dummy/mod.rs index c55d86d6..a6d7f5d6 100644 --- a/crates/transport/src/connections/dummy/mod.rs +++ b/crates/transport/src/connections/dummy/mod.rs @@ -22,9 +22,9 @@ use crate::notifier::Notifier; use crate::pool::Pool; /// Max delay in ms on sending message -const DUMMY_DELAY_MAX: u64 = 100; +const DUMMY_DELAY_MAX: u64 = 1000; /// Min delay in ms on sending message -const DUMMY_DELAY_MIN: u64 = 0; +const DUMMY_DELAY_MIN: u64 = 100; /// Config random delay when send message const SEND_MESSAGE_DELAY: bool = true; /// Config random delay when channel opening @@ -93,6 +93,18 @@ impl DummyConnection { } self.callback().on_peer_connection_state_change(state).await; + + // Simulate the behavior where the data channel is not opened immediately upon connection, + // but rather after a certain number of milliseconds. + if state == WebrtcConnectionState::Connected { + let cb = self.callback(); + tokio::spawn(async move { + if CHANNEL_OPEN_DELAY { + random_delay().await; + } + cb.on_data_channel_open().await; + }); + } } }