Commit 69abda68 by qlintonger xeno

再次更新+34

parent a23b1e0d
......@@ -49,6 +49,7 @@ pub async fn close_existing_connection(from_id: &(String, u128), close_old: bool
// 关闭旧连接:找到所有连接时间小于当前时间的连接
let mut keys_to_remove = Vec::new();
for entry in CLIENT_SENDERS.iter() {
println!("当前key {:?}", entry.key());
if entry.key().0 == real_user_id.to_string() && entry.key().1 < current_time {
keys_to_remove.push(entry.key().clone());
}
......
......@@ -435,7 +435,7 @@ pub async fn handle_agora_call(
if let Some(sender) = refuse_procedure_map.get(from_id) { sender.send(()).ok(); }
if let Some(sender) = channel_hangup_procedure_map.get(&channel_id) { sender.send(()).ok(); }
let mut real_host_id = String::new();
if !ONLINE_USERS.iter().any(|e| e.value().split(',').nth(CHANNEL_IDX).unwrap_or("") == channel_id && e.value().split(',').nth(HOST_IDX).unwrap_or("") == "1") {
let initiator = channel_id.split('_').next().unwrap_or("");
let host_id = if HOST_ENABLED_ID_SET.contains(initiator) {
......@@ -447,6 +447,7 @@ pub async fn handle_agora_call(
.find(|id| HOST_ENABLED_ID_SET.contains(id.as_str()))
.unwrap_or_else(|| ONLINE_USERS.iter().find(|e| e.value().split(',').nth(CHANNEL_IDX).unwrap_or("") == channel_id).map(|e| e.key().clone()).unwrap_or_default())
};
real_host_id = host_id.to_string();
let joined = update_user_status(&host_id, &ONLINE_USERS.get(&host_id).map(|v| v.split(',').next().unwrap_or("idle").to_string()).unwrap_or("idle".into()), &channel_id, true);
update_redis_async(host_id, joined);
}
......@@ -465,6 +466,14 @@ pub async fn handle_agora_call(
"toID": user_id
}).to_string(), &user_id).await;
}
// 修改状态数据
let joined = update_user_status(
&user_id,
"calling",
&channel_id,
real_host_id == user_id
);
update_redis_async(user_id, joined);
}
tokio::spawn(async move { notify_all_clients_to_update_online_users().await; });
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment