From efbb284eb8a1ce2fbf629538c37e5f64228d23a6 Mon Sep 17 00:00:00 2001 From: Zorglube <630192+zorglube@users.noreply.github.com> Date: Sat, 20 Mar 2021 22:32:13 +0100 Subject: [PATCH] Zorch review, use `session.ID` to count running stream --- handlers.go | 4 ++-- stats.go | 17 ++++++++--------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/handlers.go b/handlers.go index 7c5f31a..e98b225 100644 --- a/handlers.go +++ b/handlers.go @@ -425,9 +425,9 @@ func handleLive(w http.ResponseWriter, r *http.Request) { cursor := ch.que.Latest() session, _ := sstore.Get(r, "moviesession") - stats.addViewer(session) + stats.addViewer(session.ID) avutil.CopyFile(muxer, cursor) - stats.removeViewer(session) + stats.removeViewer(session.ID) } else { // Maybe HTTP_204 is better than HTTP_404 w.WriteHeader(http.StatusNoContent) diff --git a/stats.go b/stats.go index eb8507c..fc67098 100644 --- a/stats.go +++ b/stats.go @@ -4,7 +4,6 @@ import ( "sync" "time" - "github.com/gorilla/sessions" "github.com/zorchenhimer/MovieNight/common" ) @@ -16,22 +15,22 @@ type streamStats struct { mutex sync.Mutex streamStart time.Time streamLive bool // True if live - viewers map[*sessions.Session]int + viewers map[string]int maxViewers int } -func (s *streamStats) addViewer(session *sessions.Session) { +func (s *streamStats) addViewer(id string) { s.mutex.Lock() - s.viewers[session] = len(s.viewers) + s.viewers[id] = len(s.viewers) size := len(s.viewers) s.updateMaxViewers(size) s.mutex.Unlock() common.LogDebugf("[stats] %d viewer(s) connected\n", size) } -func (s *streamStats) removeViewer(session *sessions.Session) { +func (s *streamStats) removeViewer(id string) { s.mutex.Lock() - delete(s.viewers, session) + delete(s.viewers, id) s.mutex.Unlock() common.LogDebugf("[stats] One viewer left the stream\n") @@ -47,8 +46,8 @@ func (s *streamStats) resetViewers() { s.viewers = sessionsMapNew() } -func sessionsMapNew() map[*sessions.Session]int { - return make(map[*sessions.Session]int) +func sessionsMapNew() map[string]int { + return make(map[string]int) } func newStreamStats() streamStats { @@ -132,7 +131,7 @@ func (s *streamStats) getMaxViewerCount() int { return s.maxViewers } -func (s *streamStats) getViewers() map[*sessions.Session]int { +func (s *streamStats) getViewers() map[string]int { s.mutex.Lock() defer s.mutex.Unlock()