Skip to content

Commit 91ffa56

Browse files
committed
modify:whep and whip port detach
1 parent e13276f commit 91ffa56

File tree

5 files changed

+52
-14
lines changed

5 files changed

+52
-14
lines changed

XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ typedef struct tag_XEngine_ServiceConfig
2424
int nXStreamPort; //X流协议服务
2525
int nJT1078Port; //JT1078协议流支持
2626
int nSrtPort; //srt协议端口
27-
int nRTCPort; //webrtc推拉流端口
27+
int nRTCWhepPort; //webrtc 拉流端口
28+
int nRTCWhipPort; //webrtc 推流端口
2829
struct
2930
{
3031
int nMaxClient; //最大客户端个数

XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE
8080
pSt_ServerConfig->nXStreamPort = st_JsonRoot["nXStreamPort"].asInt();
8181
pSt_ServerConfig->nJT1078Port = st_JsonRoot["nJT1078Port"].asInt();
8282
pSt_ServerConfig->nSrtPort = st_JsonRoot["nSrtPort"].asInt();
83-
pSt_ServerConfig->nRTCPort = st_JsonRoot["nRTCPort"].asInt();
83+
pSt_ServerConfig->nRTCWhepPort = st_JsonRoot["nRTCWhepPort"].asInt();
84+
pSt_ServerConfig->nRTCWhipPort = st_JsonRoot["nRTCWhipPort"].asInt();
8485
//最大配置
8586
if (st_JsonRoot["XMax"].empty() || (8 != st_JsonRoot["XMax"].size()))
8687
{

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/StreamMedia_PullStream/PullStream_ClientWebRtc.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ bool PullStream_ClientWebRtc_SDKPacket(XNETHANDLE xhPacket, LPCXSTR lpszClientID
219219
RTPProtocol_Packet_Insert(tszSSrcStr, ENUM_STREAMMEDIA_RTPPROTOCOL_PAYLOAD_TYPE_AAC);
220220
RTPProtocol_Packet_SetPType(tszSSrcStr, nAVIndex);
221221
}
222-
SDPProtocol_Packet_OptionalCandidate(xhPacket, st_ServiceConfig.tszIPAddr, st_ServiceConfig.nRTCPort);
222+
SDPProtocol_Packet_OptionalCandidate(xhPacket, st_ServiceConfig.tszIPAddr, st_ServiceConfig.nRTCWhepPort);
223223
BaseLib_Memory_Free((XPPPMEM)&pptszAVList, 1);
224224
return true;
225225
}

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/StreamMedia_PushStream/PushStream_ClientWebRtc.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ bool PushStream_ClientWebRtc_SDKPacket(XNETHANDLE xhPacket, LPCXSTR lpszClientID
202202
SDPProtocol_Packet_RtcpComm(xhPacket, true, true);
203203
SDPProtocol_Packet_AudioFmt(xhPacket, nAVIndex, pSt_SDPMediaInfo, true);
204204
}
205-
SDPProtocol_Packet_OptionalCandidate(xhPacket, st_ServiceConfig.tszIPAddr, st_ServiceConfig.nRTCPort);
205+
SDPProtocol_Packet_OptionalCandidate(xhPacket, st_ServiceConfig.tszIPAddr, st_ServiceConfig.nRTCWhipPort);
206206
BaseLib_Memory_Free((XPPPMEM)&pptszAVList, 1);
207207
return true;
208208
}

XEngine_Source/XEngine_ServiceApp/XEngine_StreamMediaApp/XEngine_StreamMediaApp.cpp

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -570,40 +570,76 @@ int main(int argc, char** argv)
570570
{
571571
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,RTSP拉流服务被禁用"));
572572
}
573-
574-
if (st_ServiceConfig.st_XPull.st_PullWebRtc.bEnable)
573+
//webrtc 拉流服务
574+
if (st_ServiceConfig.st_XPull.st_PullWebRtc.bEnable && (st_ServiceConfig.nRTCWhepPort > 0))
575575
{
576576
xhRTCSsl = Cryption_Server_InitEx(st_ServiceConfig.st_XPull.st_PullWebRtc.tszCertStr, NULL, st_ServiceConfig.st_XPull.st_PullWebRtc.tszKeyStr, false, false, XENGINE_CRYPTION_PROTOCOL_DTL);
577577
if (NULL == xhRTCSsl)
578578
{
579-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动WEBRTC-DTLS安全网络,错误:%lX"), Cryption_GetLastError());
579+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动拉流WEBRTC-DTLS安全网络,错误:%lX"), Cryption_GetLastError());
580580
goto XENGINE_SERVICEAPP_EXIT;
581581
}
582582
Cryption_Server_ConfigEx(xhRTCSsl);
583-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加载RTC证书成功:%s,%s"), st_ServiceConfig.st_XPull.st_PullWebRtc.tszCertStr, st_ServiceConfig.st_XPull.st_PullWebRtc.tszKeyStr);
583+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加载拉流RTC证书成功:%s,%s"), st_ServiceConfig.st_XPull.st_PullWebRtc.tszCertStr, st_ServiceConfig.st_XPull.st_PullWebRtc.tszKeyStr);
584584

585-
xhRTCSocket = NetCore_UDPSelect_Start(st_ServiceConfig.nRTCPort);
585+
xhRTCSocket = NetCore_UDPSelect_Start(st_ServiceConfig.nRTCWhepPort);
586+
if (NULL == xhRTCSocket)
587+
{
588+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动拉流WEBRTC网络端口:%d 失败,错误:%d"), st_ServiceConfig.nRTCWhepPort, errno);
589+
goto XENGINE_SERVICEAPP_EXIT;
590+
}
591+
NetCore_UDPSelect_RegisterCallBack(xhRTCSocket, Network_Callback_RTCRecv);
592+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,启动拉流WEBRTC端口:%d 成功"), st_ServiceConfig.nRTCWhepPort);
593+
594+
if (st_ServiceConfig.st_XTime.nRTCTimeout > 0)
595+
{
596+
xhRTCHeart = SocketOpt_HeartBeat_InitEx(st_ServiceConfig.st_XTime.nRTCTimeout, st_ServiceConfig.st_XTime.nTimeCheck, Network_Callback_RTCHBLeave);
597+
if (NULL == xhRTCHeart)
598+
{
599+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化拉流RTC心跳管理服务失败,错误:%lX"), NetCore_GetLastError());
600+
goto XENGINE_SERVICEAPP_EXIT;
601+
}
602+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化拉流RTC心跳管理服务成功,检测时间:%d"), st_ServiceConfig.st_XTime.nRTCTimeout);
603+
}
604+
else
605+
{
606+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,拉流RTC心跳管理服务没有启用!"));
607+
}
608+
}
609+
//webrtc 推流
610+
if (st_ServiceConfig.st_XPull.st_PullWebRtc.bEnable && (st_ServiceConfig.nRTCWhipPort > 0))
611+
{
612+
xhRTCSsl = Cryption_Server_InitEx(st_ServiceConfig.st_XPull.st_PullWebRtc.tszCertStr, NULL, st_ServiceConfig.st_XPull.st_PullWebRtc.tszKeyStr, false, false, XENGINE_CRYPTION_PROTOCOL_DTL);
613+
if (NULL == xhRTCSsl)
614+
{
615+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动推流WEBRTC-DTLS安全网络,错误:%lX"), Cryption_GetLastError());
616+
goto XENGINE_SERVICEAPP_EXIT;
617+
}
618+
Cryption_Server_ConfigEx(xhRTCSsl);
619+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加载推流RTC证书成功:%s,%s"), st_ServiceConfig.st_XPull.st_PullWebRtc.tszCertStr, st_ServiceConfig.st_XPull.st_PullWebRtc.tszKeyStr);
620+
621+
xhRTCSocket = NetCore_UDPSelect_Start(st_ServiceConfig.nRTCWhipPort);
586622
if (NULL == xhRTCSocket)
587623
{
588-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动WEBRTC网络端口:%d 失败,错误:%d"), st_ServiceConfig.nRTCPort, errno);
624+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动推流WEBRTC网络端口:%d 失败,错误:%d"), st_ServiceConfig.nRTCWhipPort, errno);
589625
goto XENGINE_SERVICEAPP_EXIT;
590626
}
591627
NetCore_UDPSelect_RegisterCallBack(xhRTCSocket, Network_Callback_RTCRecv);
592-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,启动WEBRTC端口:%d 成功"), st_ServiceConfig.nRTCPort);
628+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,启动推流WEBRTC端口:%d 成功"), st_ServiceConfig.nRTCWhipPort);
593629

594630
if (st_ServiceConfig.st_XTime.nRTCTimeout > 0)
595631
{
596632
xhRTCHeart = SocketOpt_HeartBeat_InitEx(st_ServiceConfig.st_XTime.nRTCTimeout, st_ServiceConfig.st_XTime.nTimeCheck, Network_Callback_RTCHBLeave);
597633
if (NULL == xhRTCHeart)
598634
{
599-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化RTC心跳管理服务失败,错误:%lX"), NetCore_GetLastError());
635+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化推流RTC心跳管理服务失败,错误:%lX"), NetCore_GetLastError());
600636
goto XENGINE_SERVICEAPP_EXIT;
601637
}
602-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化RTC心跳管理服务成功,检测时间:%d"), st_ServiceConfig.st_XTime.nRTCTimeout);
638+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化推流RTC心跳管理服务成功,检测时间:%d"), st_ServiceConfig.st_XTime.nRTCTimeout);
603639
}
604640
else
605641
{
606-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,RTC心跳管理服务没有启用!"));
642+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,推流RTC心跳管理服务没有启用!"));
607643
}
608644
}
609645

0 commit comments

Comments
 (0)