Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
ZLMediaKit
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
张翔宇
ZLMediaKit
Commits
e9e21e11
Commit
e9e21e11
authored
May 29, 2019
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rtsp/rtmp超时时间可配置
parent
a39c4c13
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
27 行增加
和
6 行删除
+27
-6
src/Common/config.cpp
+9
-1
src/Common/config.h
+8
-1
src/Rtmp/RtmpSession.cpp
+5
-2
src/Rtsp/RtspSession.cpp
+5
-2
没有找到文件。
src/Common/config.cpp
查看文件 @
e9e21e11
...
@@ -158,10 +158,13 @@ onceToken token([](){
...
@@ -158,10 +158,13 @@ onceToken token([](){
namespace
Rtsp
{
namespace
Rtsp
{
#define RTSP_FIELD "rtsp."
#define RTSP_FIELD "rtsp."
const
char
kAuthBasic
[]
=
RTSP_FIELD
"authBasic"
;
const
char
kAuthBasic
[]
=
RTSP_FIELD
"authBasic"
;
const
char
kHandshakeSecond
[]
=
RTSP_FIELD
"handshakeSecond"
;
const
char
kKeepAliveSecond
[]
=
RTSP_FIELD
"keepAliveSecond"
;
onceToken
token
([](){
onceToken
token
([](){
//默认Md5方式认证
//默认Md5方式认证
mINI
::
Instance
()[
kAuthBasic
]
=
0
;
mINI
::
Instance
()[
kAuthBasic
]
=
0
;
mINI
::
Instance
()[
kHandshakeSecond
]
=
15
;
mINI
::
Instance
()[
kKeepAliveSecond
]
=
15
;
},
nullptr
);
},
nullptr
);
}
//namespace Rtsp
}
//namespace Rtsp
...
@@ -170,10 +173,15 @@ onceToken token([](){
...
@@ -170,10 +173,15 @@ onceToken token([](){
namespace
Rtmp
{
namespace
Rtmp
{
#define RTMP_FIELD "rtmp."
#define RTMP_FIELD "rtmp."
const
char
kModifyStamp
[]
=
RTMP_FIELD
"modifyStamp"
;
const
char
kModifyStamp
[]
=
RTMP_FIELD
"modifyStamp"
;
const
char
kHandshakeSecond
[]
=
RTMP_FIELD
"handshakeSecond"
;
const
char
kKeepAliveSecond
[]
=
RTMP_FIELD
"keepAliveSecond"
;
onceToken
token
([](){
onceToken
token
([](){
mINI
::
Instance
()[
kModifyStamp
]
=
true
;
mINI
::
Instance
()[
kModifyStamp
]
=
true
;
mINI
::
Instance
()[
kHandshakeSecond
]
=
15
;
mINI
::
Instance
()[
kKeepAliveSecond
]
=
15
;
},
nullptr
);
},
nullptr
);
}
//namespace RTMP
}
//namespace RTMP
...
...
src/Common/config.h
查看文件 @
e9e21e11
...
@@ -194,12 +194,19 @@ extern const char kMaxReqSize[];
...
@@ -194,12 +194,19 @@ extern const char kMaxReqSize[];
namespace
Rtsp
{
namespace
Rtsp
{
//是否优先base64方式认证?默认Md5方式认证
//是否优先base64方式认证?默认Md5方式认证
extern
const
char
kAuthBasic
[];
extern
const
char
kAuthBasic
[];
//握手超时时间,默认15秒
extern
const
char
kHandshakeSecond
[];
//维持链接超时时间,默认15秒
extern
const
char
kKeepAliveSecond
[];
}
//namespace Rtsp
}
//namespace Rtsp
////////////RTMP服务器配置///////////
////////////RTMP服务器配置///////////
namespace
Rtmp
{
namespace
Rtmp
{
extern
const
char
kModifyStamp
[];
extern
const
char
kModifyStamp
[];
//握手超时时间,默认15秒
extern
const
char
kHandshakeSecond
[];
//维持链接超时时间,默认15秒
extern
const
char
kKeepAliveSecond
[];
}
//namespace RTMP
}
//namespace RTMP
...
...
src/Rtmp/RtmpSession.cpp
查看文件 @
e9e21e11
...
@@ -63,14 +63,17 @@ void RtmpSession::onError(const SockException& err) {
...
@@ -63,14 +63,17 @@ void RtmpSession::onError(const SockException& err) {
}
}
void
RtmpSession
::
onManager
()
{
void
RtmpSession
::
onManager
()
{
if
(
_ticker
.
createdTime
()
>
15
*
1000
)
{
GET_CONFIG
(
uint32_t
,
handshake_sec
,
Rtmp
::
kKeepAliveSecond
);
GET_CONFIG
(
uint32_t
,
keep_alive_sec
,
Rtmp
::
kKeepAliveSecond
);
if
(
_ticker
.
createdTime
()
>
handshake_sec
*
1000
)
{
if
(
!
_pRingReader
&&
!
_pPublisherSrc
)
{
if
(
!
_pRingReader
&&
!
_pPublisherSrc
)
{
shutdown
(
SockException
(
Err_timeout
,
"illegal connection"
));
shutdown
(
SockException
(
Err_timeout
,
"illegal connection"
));
}
}
}
}
if
(
_pPublisherSrc
)
{
if
(
_pPublisherSrc
)
{
//publisher
//publisher
if
(
_ticker
.
elapsedTime
()
>
15
*
1000
)
{
if
(
_ticker
.
elapsedTime
()
>
keep_alive_sec
*
1000
)
{
shutdown
(
SockException
(
Err_timeout
,
"recv data from rtmp pusher timeout"
));
shutdown
(
SockException
(
Err_timeout
,
"recv data from rtmp pusher timeout"
));
}
}
}
}
...
...
src/Rtsp/RtspSession.cpp
查看文件 @
e9e21e11
...
@@ -111,7 +111,10 @@ void RtspSession::onError(const SockException& err) {
...
@@ -111,7 +111,10 @@ void RtspSession::onError(const SockException& err) {
}
}
void
RtspSession
::
onManager
()
{
void
RtspSession
::
onManager
()
{
if
(
_ticker
.
createdTime
()
>
15
*
1000
)
{
GET_CONFIG
(
uint32_t
,
handshake_sec
,
Rtsp
::
kKeepAliveSecond
);
GET_CONFIG
(
uint32_t
,
keep_alive_sec
,
Rtsp
::
kKeepAliveSecond
);
if
(
_ticker
.
createdTime
()
>
handshake_sec
*
1000
)
{
if
(
_strSession
.
size
()
==
0
)
{
if
(
_strSession
.
size
()
==
0
)
{
shutdown
(
SockException
(
Err_timeout
,
"illegal connection"
));
shutdown
(
SockException
(
Err_timeout
,
"illegal connection"
));
return
;
return
;
...
@@ -119,7 +122,7 @@ void RtspSession::onManager() {
...
@@ -119,7 +122,7 @@ void RtspSession::onManager() {
}
}
if
((
_rtpType
==
Rtsp
::
RTP_UDP
||
_pushSrc
)
&&
_ticker
.
elapsedTime
()
>
15
*
1000
)
{
if
((
_rtpType
==
Rtsp
::
RTP_UDP
||
_pushSrc
)
&&
_ticker
.
elapsedTime
()
>
keep_alive_sec
*
1000
)
{
//如果是推流端或者rtp over udp类型的播放端,那么就做超时检测
//如果是推流端或者rtp over udp类型的播放端,那么就做超时检测
shutdown
(
SockException
(
Err_timeout
,
"rtp over udp session timeouted"
));
shutdown
(
SockException
(
Err_timeout
,
"rtp over udp session timeouted"
));
return
;
return
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论