From 6a191e40777509a069bc877ea7189b6129cb4ac3 Mon Sep 17 00:00:00 2001 From: winlin Date: Wed, 20 May 2020 19:05:00 +0800 Subject: [PATCH] RTC: Support destroy session --- trunk/src/app/srs_app_rtc_server.cpp | 13 +++++++++++++ trunk/src/app/srs_app_rtc_server.hpp | 2 ++ 2 files changed, 15 insertions(+) diff --git a/trunk/src/app/srs_app_rtc_server.cpp b/trunk/src/app/srs_app_rtc_server.cpp index 47636a5f0..6858802ad 100644 --- a/trunk/src/app/srs_app_rtc_server.cpp +++ b/trunk/src/app/srs_app_rtc_server.cpp @@ -682,6 +682,19 @@ srs_error_t SrsRtcServer::setup_session2(SrsRtcSession* session, SrsRequest* req return err; } +void SrsRtcServer::destroy(SrsRtcSession* session) +{ + std::map::iterator it; + + if ((it = map_username_session.find(session->username())) != map_username_session.end()) { + map_username_session.erase(it); + } + + if ((it = map_id_session.find(session->peer_id())) != map_id_session.end()) { + map_id_session.erase(it); + } +} + bool SrsRtcServer::insert_into_id_sessions(const string& peer_id, SrsRtcSession* session) { return map_id_session.insert(make_pair(peer_id, session)).second; diff --git a/trunk/src/app/srs_app_rtc_server.hpp b/trunk/src/app/srs_app_rtc_server.hpp index a18274f8f..db75bdcaa 100644 --- a/trunk/src/app/srs_app_rtc_server.hpp +++ b/trunk/src/app/srs_app_rtc_server.hpp @@ -113,6 +113,8 @@ public: // We start offering, create_session2 to generate offer, setup_session2 to handle answer. srs_error_t create_session2(SrsSdp& local_sdp, SrsRtcSession** psession); srs_error_t setup_session2(SrsRtcSession* session, SrsRequest* req, const SrsSdp& remote_sdp); + // Destroy the session from server. + void destroy(SrsRtcSession* session); public: bool insert_into_id_sessions(const std::string& peer_id, SrsRtcSession* session); void check_and_clean_timeout_session();