webrtc server/session/cadidate 改为tcp

This commit is contained in:
宣伟 2022-11-17 16:46:46 +08:00
parent df14924a99
commit a3f505ccc5
4 changed files with 16 additions and 16 deletions

View File

@ -278,18 +278,18 @@ int start_main(int argc,char *argv[]) {
#if defined(ENABLE_WEBRTC)
//webrtc udp服务器
auto rtcSrv = std::make_shared<UdpServer>();
rtcSrv->setOnCreateSocket([](const EventPoller::Ptr &poller, const Buffer::Ptr &buf, struct sockaddr *, int) {
if (!buf) {
return Socket::createSocket(poller, false);
}
auto new_poller = WebRtcSession::queryPoller(buf);
if (!new_poller) {
//该数据对应的webrtc对象未找到丢弃之
return Socket::Ptr();
}
return Socket::createSocket(new_poller, false);
});
auto rtcSrv = std::make_shared<TcpServer>();
// rtcSrv->setOnCreateSocket([](const EventPoller::Ptr &poller, const Buffer::Ptr &buf, struct sockaddr *, int) {
// if (!buf) {
// return Socket::createSocket(poller, false);
// }
// auto new_poller = WebRtcSession::queryPoller(buf);
// if (!new_poller) {
// //该数据对应的webrtc对象未找到丢弃之
// return Socket::Ptr();
// }
// return Socket::createSocket(new_poller, false);
// });
uint16_t rtcPort = mINI::Instance()[Rtc::kPort];
#endif//defined(ENABLE_WEBRTC)

View File

@ -45,7 +45,7 @@ EventPoller::Ptr WebRtcSession::queryPoller(const Buffer::Ptr &buffer) {
////////////////////////////////////////////////////////////////////////////////
WebRtcSession::WebRtcSession(const Socket::Ptr &sock) : UdpSession(sock) {
WebRtcSession::WebRtcSession(const Socket::Ptr &sock) : TcpSession(sock) {
socklen_t addr_len = sizeof(_peer_addr);
getpeername(sock->rawFD(), (struct sockaddr *)&_peer_addr, &addr_len);
}

View File

@ -18,7 +18,7 @@
namespace mediakit {
class WebRtcSession : public UdpSession {
class WebRtcSession : public TcpSession {
public:
WebRtcSession(const Socket::Ptr &sock);
~WebRtcSession() override;

View File

@ -608,12 +608,12 @@ void WebRtcTransportImp::onRtcConfigure(RtcConfigure &configure) const {
});
if (extern_ips.empty()) {
std::string localIp = SockUtil::get_local_ip();
configure.addCandidate(*makeIceCandidate(localIp, local_port, 120, "udp"));
configure.addCandidate(*makeIceCandidate(localIp, local_port, 120, "tcp"));
} else {
const uint32_t delta = 10;
uint32_t priority = 100 + delta * extern_ips.size();
for (auto ip : extern_ips) {
configure.addCandidate(*makeIceCandidate(ip, local_port, priority, "udp"));
configure.addCandidate(*makeIceCandidate(ip, local_port, priority, "tcp"));
priority -= delta;
}
}