c sdk支持webrtc tcp

This commit is contained in:
ziyue 2022-11-18 22:52:37 +08:00
parent 82b72fe718
commit eef2b1fb7a
1 changed files with 20 additions and 14 deletions

View File

@ -37,7 +37,8 @@ static std::shared_ptr<RtpServer> rtpServer;
#ifdef ENABLE_WEBRTC
#include "../webrtc/WebRtcSession.h"
static std::shared_ptr<UdpServer> rtcServer;
static std::shared_ptr<UdpServer> rtcServer_udp;
static std::shared_ptr<TcpServer> rtcServer_tcp;
#endif
#if defined(ENABLE_SRT)
@ -72,7 +73,8 @@ API_EXPORT void API_CALL mk_stop_all_server(){
rtpServer = nullptr;
#endif
#ifdef ENABLE_WEBRTC
rtcServer = nullptr;
rtcServer_udp = nullptr;
rtcServer_tcp = nullptr;
#endif
#ifdef ENABLE_SRT
srtServer = nullptr;
@ -178,7 +180,7 @@ API_EXPORT uint16_t API_CALL mk_http_server_start(uint16_t port, int ssl) {
}
return http_server[ssl]->getPort();
} catch (std::exception &ex) {
http_server[ssl].reset();
http_server[ssl] = nullptr;;
WarnL << ex.what();
return 0;
}
@ -195,7 +197,7 @@ API_EXPORT uint16_t API_CALL mk_rtsp_server_start(uint16_t port, int ssl) {
}
return rtsp_server[ssl]->getPort();
} catch (std::exception &ex) {
rtsp_server[ssl].reset();
rtsp_server[ssl] = nullptr;;
WarnL << ex.what();
return 0;
}
@ -212,7 +214,7 @@ API_EXPORT uint16_t API_CALL mk_rtmp_server_start(uint16_t port, int ssl) {
}
return rtmp_server[ssl]->getPort();
} catch (std::exception &ex) {
rtmp_server[ssl].reset();
rtmp_server[ssl] = nullptr;;
WarnL << ex.what();
return 0;
}
@ -226,7 +228,7 @@ API_EXPORT uint16_t API_CALL mk_rtp_server_start(uint16_t port){
rtpServer->start(port);
return rtpServer->getPort();
} catch (std::exception &ex) {
rtpServer.reset();
rtpServer = nullptr;;
WarnL << ex.what();
return 0;
}
@ -239,9 +241,9 @@ API_EXPORT uint16_t API_CALL mk_rtp_server_start(uint16_t port){
API_EXPORT uint16_t API_CALL mk_rtc_server_start(uint16_t port) {
#ifdef ENABLE_WEBRTC
try {
//创建rtc服务器
rtcServer = std::make_shared<UdpServer>();
rtcServer->setOnCreateSocket([](const EventPoller::Ptr &poller, const Buffer::Ptr &buf, struct sockaddr *, int) {
//创建rtc udp服务器
rtcServer_udp = std::make_shared<UdpServer>();
rtcServer_udp->setOnCreateSocket([](const EventPoller::Ptr &poller, const Buffer::Ptr &buf, struct sockaddr *, int) {
if (!buf) {
return Socket::createSocket(poller, false);
}
@ -252,11 +254,15 @@ API_EXPORT uint16_t API_CALL mk_rtc_server_start(uint16_t port) {
}
return Socket::createSocket(new_poller, false);
});
rtcServer->start<WebRtcSession>(port);
return rtcServer->getPort();
rtcServer_udp->start<WebRtcSession>(port);
//创建rtc tcp服务器
rtcServer_tcp = std::make_shared<TcpServer>();
rtcServer_tcp->start<WebRtcSession>(rtcServer_udp->getPort());
return rtcServer_udp->getPort();
} catch (std::exception &ex) {
rtcServer.reset();
rtcServer_udp = nullptr;
rtcServer_tcp = nullptr;
WarnL << ex.what();
return 0;
}
@ -323,7 +329,7 @@ API_EXPORT uint16_t API_CALL mk_srt_server_start(uint16_t port) {
return srtServer->getPort();
} catch (std::exception &ex) {
srtServer.reset();
srtServer = nullptr;;
WarnL << ex.what();
return 0;
}
@ -339,7 +345,7 @@ API_EXPORT uint16_t API_CALL mk_shell_server_start(uint16_t port){
shell_server->start<ShellSession>(port);
return shell_server->getPort();
} catch (std::exception &ex) {
shell_server.reset();
shell_server = nullptr;;
WarnL << ex.what();
return 0;
}