Add 1 second time interval for retry join transmission

This commit is contained in:
dijunkun
2023-12-18 15:23:44 +08:00
parent 0b80124b3c
commit 82dafa9782
3 changed files with 9 additions and 2 deletions

View File

@@ -117,7 +117,7 @@ int IceAgent::DestroyIceAgent() {
nice_thread_->join(); nice_thread_->join();
} }
LOG_ERROR("Destroy nice agent success"); LOG_INFO("Destroy nice agent success");
return 0; return 0;
} }

View File

@@ -273,6 +273,7 @@ int PeerConnection::Join(const std::string &transmission_id,
int ret = 0; int ret = 0;
password_ = password; password_ = password;
leave_ = false;
transmission_id_ = transmission_id; transmission_id_ = transmission_id;
ret = RequestTransmissionMemberList(transmission_id_, password); ret = RequestTransmissionMemberList(transmission_id_, password);
@@ -295,6 +296,7 @@ int PeerConnection::Leave() {
} }
ice_ready_ = false; ice_ready_ = false;
leave_ = true;
for (auto &user_id_it : ice_transmission_list_) { for (auto &user_id_it : ice_transmission_list_) {
user_id_it.second->DestroyIceTransmission(); user_id_it.second->DestroyIceTransmission();
@@ -338,8 +340,13 @@ void PeerConnection::ProcessSignal(const std::string &signal) {
on_connection_status_(ConnectionStatus::NoSuchTransmissionId); on_connection_status_(ConnectionStatus::NoSuchTransmissionId);
} }
} else { } else {
if (leave_) {
break;
}
if (user_id_list_.empty()) { if (user_id_list_.empty()) {
LOG_WARN("Wait for host create transmission [{}]", transmission_id); LOG_WARN("Wait for host create transmission [{}]", transmission_id);
std::this_thread::sleep_for(std::chrono::seconds(1));
RequestTransmissionMemberList(transmission_id, password_); RequestTransmissionMemberList(transmission_id, password_);
break; break;
} }

View File

@@ -91,7 +91,7 @@ class PeerConnection {
std::vector<std::string> user_id_list_; std::vector<std::string> user_id_list_;
SignalStatus signal_status_ = SignalStatus::SignalClosed; SignalStatus signal_status_ = SignalStatus::SignalClosed;
std::mutex signal_status_mutex_; std::mutex signal_status_mutex_;
bool leave_ = false; std::atomic<bool> leave_ = false;
private: private:
std::map<std::string, std::unique_ptr<IceTransmission>> std::map<std::string, std::unique_ptr<IceTransmission>>