diff --git a/server/main.cpp b/server/main.cpp index 0a1110ea..1e333e62 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -274,7 +274,7 @@ int start_main(int argc,char *argv[]) { if (!buf) { return Socket::createSocket(poller, false); } - auto new_poller = WebRtcSession::getPoller(buf); + auto new_poller = QueryPollerByBuffer(buf); if (!new_poller) { //该数据对应的webrtc对象未找到,丢弃之 return Socket::Ptr(); diff --git a/webrtc/WebRtcSession.cpp b/webrtc/WebRtcSession.cpp index 859aba65..e2295c9e 100644 --- a/webrtc/WebRtcSession.cpp +++ b/webrtc/WebRtcSession.cpp @@ -40,7 +40,7 @@ static string getUserName(const Buffer::Ptr &buffer) { return vec[0]; } -EventPoller::Ptr WebRtcSession::getPoller(const Buffer::Ptr &buffer) { +EventPoller::Ptr QueryPollerByBuffer(const Buffer::Ptr &buffer) { auto user_name = getUserName(buffer); if (user_name.empty()) { return nullptr; @@ -80,7 +80,7 @@ void WebRtcSession::onError(const SockException &err) { return; } auto transport = std::move(_transport); - this->Session::getPoller()->async([transport] { + getPoller()->async([transport] { //延时减引用,防止使用transport对象时,销毁对象 }, false); } diff --git a/webrtc/WebRtcSession.h b/webrtc/WebRtcSession.h index 965f4e6c..3dce62b1 100644 --- a/webrtc/WebRtcSession.h +++ b/webrtc/WebRtcSession.h @@ -18,10 +18,10 @@ using namespace toolkit; +EventPoller::Ptr QueryPollerByBuffer(const Buffer::Ptr &buffer); + class WebRtcSession : public UdpSession { public: - static EventPoller::Ptr getPoller(const Buffer::Ptr &); - WebRtcSession(const Socket::Ptr &sock); ~WebRtcSession() override;