Skip to content

Commit

Permalink
prev commit patch
Browse files Browse the repository at this point in the history
  • Loading branch information
q191201771 committed May 20, 2024
1 parent d196a17 commit 9dc71b7
Showing 1 changed file with 29 additions and 1 deletion.
30 changes: 29 additions & 1 deletion pkg/hls/server_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,13 +90,20 @@ func (s *ServerHandler) ServeHTTPWithUrlCtx(resp http.ResponseWriter, req *http.
// noop
}
} else if filetype == "m3u8" {
neededRedirect := false

if sessionIdHash != "" {
err = s.keepSessionAlive(sessionIdHash)
if err != nil {
Log.Warnf("keepSessionAlive failed. session=%s, err=%+v", sessionIdHash, err)
neededRedirect = true
}
} else {
// m3u8请求时,session_id不存在,创建session对象,并让m3u8跳转到携带session_id的url请求
neededRedirect = true
}

if neededRedirect {
// 创建session对象,并让m3u8跳转到携带session_id的url请求

session, err := s.createSubSession(req, urlCtx)
if err != nil {
Expand Down Expand Up @@ -201,6 +208,27 @@ func (s *ServerHandler) clearExpireSession() {
}
}

func (s *ServerHandler) CloseSubSessionIfExist(req *http.Request) {
s.mutex.Lock()
defer s.mutex.Unlock()

urlCtx, err := base.ParseUrl(base.ParseHttpRequest(req), 80)
if err != nil {
Log.Errorf("parse url. err=%+v", err)
return
}

urlObj, _ := url.Parse(urlCtx.Url)
sessionIdHash := urlObj.Query().Get("session_id")

session := s.sessionMap[sessionIdHash]
if session == nil {
return
}
delete(s.sessionMap, sessionIdHash)
s.observer.OnDelHlsSubSession(session)
}

func (s *ServerHandler) isSubSessionModeEnable() bool {
return s.subSessionHashKey != ""
}
Expand Down

0 comments on commit 9dc71b7

Please sign in to comment.