1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use std::sync::atomic::Ordering;
use std::sync::Arc;
use crate::Client;
pub async fn after_login(client: &Arc<Client>) {
if let Err(err) = client.register_client().await {
tracing::error!("failed to register client: {}", err)
}
start_heartbeat(client.clone()).await;
if let Err(err) = client.refresh_status().await {
tracing::error!("failed to refresh status: {}", err)
}
}
pub async fn start_heartbeat(client: Arc<Client>) {
if !client.heartbeat_enabled.load(Ordering::Relaxed) {
tokio::spawn(async move {
client.do_heartbeat().await;
});
}
}