@@ -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