diff --git a/pkg/base/var.go b/pkg/base/var.go index c9d409c..4f0ec3c 100644 --- a/pkg/base/var.go +++ b/pkg/base/var.go @@ -12,5 +12,28 @@ import "github.com/q191201771/naza/pkg/nazalog" var Log = nazalog.GetGlobalLogger() -// AddCors2HlsFlag 是否为hls增加跨域相关的http header -var AddCors2HlsFlag = true +// ----- hls -------------------- +var ( + // AddCors2HlsFlag 是否为hls增加跨域相关的http header + AddCors2HlsFlag = true +) + +// ----- rtmp -------------------- +var ( + // RtmpServerSessionReadAvTimeoutMs rtmp server pub session,读音视频数据超时 + RtmpServerSessionReadAvTimeoutMs = 120000 +) + +// ----- logic -------------------- +var ( + // LogicCheckSessionAliveIntervalSec + // + // 检查session是否有数据传输的时间间隔,该间隔内没有数据传输的session将被关闭。 + // + // 对于输入型session,检查一定时间内,是否没有收到数据。 + // + // 对于输出型session,检查一定时间内,是否没有发送数据。 + // 注意,socket阻塞无法发送和上层没有向该session喂入数据都算没有发送数据。 + // + LogicCheckSessionAliveIntervalSec uint32 = 120 +) diff --git a/pkg/logic/group__.go b/pkg/logic/group__.go index 887392d..46a36cc 100644 --- a/pkg/logic/group__.go +++ b/pkg/logic/group__.go @@ -452,7 +452,7 @@ func (group *Group) disposeInactiveSessions(tickCount uint32) { // 以下都是以 CheckSessionAliveIntervalSec 为间隔的清理逻辑 - if tickCount%CheckSessionAliveIntervalSec != 0 { + if tickCount%base.LogicCheckSessionAliveIntervalSec != 0 { return } diff --git a/pkg/logic/var.go b/pkg/logic/var.go index b6c4999..b8d1d1e 100644 --- a/pkg/logic/var.go +++ b/pkg/logic/var.go @@ -51,18 +51,6 @@ var ( // - rtsp pull: rtsp.PullSessionOption.PullTimeoutMs // - httpflv pull: httpflv.PullSessionOption.PullTimeoutMs ReadTimeoutMs - // CheckSessionAliveIntervalSec - // - // 检查session是否有数据传输的时间间隔,该间隔内没有数据传输的session将被关闭。 - // - // 对于输入型session,检查一定时间内,是否没有收到数据。 - // - // 对于输出型session,检查一定时间内,是否没有发送数据。 - // 注意,socket阻塞无法发送和上层没有向该session喂入数据都算没有发送数据。 - // - //CheckSessionAliveIntervalSec uint32 = 10 - CheckSessionAliveIntervalSec uint32 = 120 - RelayPushTimeoutMs = 10000 RelayPushWriteAvTimeoutMs = 10000 diff --git a/pkg/rtmp/server_session.go b/pkg/rtmp/server_session.go index 2260c14..25f9e20 100644 --- a/pkg/rtmp/server_session.go +++ b/pkg/rtmp/server_session.go @@ -537,7 +537,7 @@ func (s *ServerSession) modConnProps() { switch s.sessionStat.BaseType() { case base.SessionBaseTypePubStr: - s.conn.ModReadTimeoutMs(serverSessionReadAvTimeoutMs) + s.conn.ModReadTimeoutMs(base.RtmpServerSessionReadAvTimeoutMs) case base.SessionBaseTypeSubStr: s.conn.ModWriteTimeoutMs(serverSessionWriteAvTimeoutMs) } diff --git a/pkg/rtmp/var.go b/pkg/rtmp/var.go index 4406069..59257d5 100644 --- a/pkg/rtmp/var.go +++ b/pkg/rtmp/var.go @@ -10,7 +10,8 @@ package rtmp import "github.com/q191201771/naza/pkg/nazalog" -// TODO chef 一些更专业的配置项,暂时只在该源码文件中配置,不提供外部配置接口 +// 一些更专业的配置项,暂时只在该源码文件中配置,不提供外部配置接口 +// 一些配置移入了pkg/base/var.go中 var ( Log = nazalog.GetGlobalLogger() @@ -20,9 +21,6 @@ var ( readBufSize = 4096 // server session connection读缓冲的大小 wChanSize = 1024 // server session 发送数据时,channel 的大小 - //serverSessionReadAvTimeoutMs = 10000 // server pub session,读音视频数据超时 - serverSessionReadAvTimeoutMs = 120000 // server pub session,读音视频数据超时 - serverSessionWriteAvTimeoutMs = 10000 // server sub session,写音视频数据超时 //writeBufSize = 4096 // 注意,因为lal server在group中使用writev做merge合并发送,这个废弃不需要了