Remove stale client purging. Use sockets to count clients. #323

This commit is contained in:
Gabe Kangas
2020-11-05 00:14:51 -08:00
parent 723a671f1c
commit 4de2841659
4 changed files with 2 additions and 29 deletions

View File

@@ -57,8 +57,8 @@ func NewClient(ws *websocket.Conn) *Client {
ipAddress := utils.GetIPAddressFromRequest(ws.Request())
userAgent := ws.Request().UserAgent()
clientID := utils.GenerateClientIDFromRequest(ws.Request())
socketID, _ := shortid.Generate()
clientID := socketID
return &Client{time.Now(), 0, userAgent, ipAddress, nil, clientID, nil, socketID, ws, ch, pingch, usernameChangeChannel, doneCh}
}

View File

@@ -108,7 +108,7 @@ func (s *server) Listen() {
// remove a client
case c := <-s.delCh:
delete(s.Clients, c.socketID)
s.listener.ClientRemoved(c.ClientID)
s.listener.ClientRemoved(c.socketID)
// message was recieved from a client and should be sanitized, validated
// and distributed to other clients.

View File

@@ -43,32 +43,9 @@ func setupStats() error {
}
}()
staleViewerPurgeTimer := time.NewTicker(3 * time.Second)
go func() {
for {
select {
case <-staleViewerPurgeTimer.C:
purgeStaleViewers()
}
}
}()
return nil
}
func purgeStaleViewers() {
for clientID, client := range _stats.Clients {
if client.LastSeen.IsZero() {
continue
}
timeSinceLastActive := time.Since(client.LastSeen).Minutes()
if timeSinceLastActive > 1 {
RemoveClient(clientID)
}
}
}
//IsStreamConnected checks if the stream is connected or not
func IsStreamConnected() bool {
if !_stats.StreamConnected {