mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-27 04:35:34 +08:00
Release ice instance when a user leave transmission
This commit is contained in:
@@ -64,6 +64,20 @@ int PeerConnection::Create(PeerConnectionParams params,
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "user_leave_transmission"_H: {
|
||||
std::string user_id = j["user_id"];
|
||||
LOG_INFO("Receive notification: user id [{}] leave transmission",
|
||||
user_id);
|
||||
auto user_id_it = ice_transmission_list_.find(user_id);
|
||||
if (user_id_it != ice_transmission_list_.end()) {
|
||||
user_id_it->second->DestroyIceTransmission();
|
||||
delete user_id_it->second;
|
||||
user_id_it->second = nullptr;
|
||||
ice_transmission_list_.erase(user_id_it);
|
||||
LOG_INFO("Terminate transmission to user [{}]", user_id);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "offer"_H: {
|
||||
std::string remote_sdp = j["sdp"].get<std::string>();
|
||||
|
||||
@@ -169,6 +183,20 @@ int PeerConnection::Join(PeerConnectionParams params,
|
||||
|
||||
break;
|
||||
}
|
||||
case "user_leave_transmission"_H: {
|
||||
std::string user_id = j["user_id"];
|
||||
LOG_INFO("Receive notification: user id [{}] leave transmission",
|
||||
user_id);
|
||||
auto user_id_it = ice_transmission_list_.find(user_id);
|
||||
if (user_id_it != ice_transmission_list_.end()) {
|
||||
user_id_it->second->DestroyIceTransmission();
|
||||
delete user_id_it->second;
|
||||
user_id_it->second = nullptr;
|
||||
ice_transmission_list_.erase(user_id_it);
|
||||
LOG_INFO("Terminate transmission to user [{}]", user_id);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "ws_connection_id"_H: {
|
||||
ws_connection_id_ = j["ws_connection_id"].get<unsigned int>();
|
||||
LOG_INFO("Receive local peer websocket connection id [{}]",
|
||||
|
||||
Reference in New Issue
Block a user