diff --git a/server/metricsServer.go b/server/metricsServer.go index d23e209..961bf4a 100644 --- a/server/metricsServer.go +++ b/server/metricsServer.go @@ -65,12 +65,12 @@ func (s *Service) startMetricsServer() { go func() { var err error if s.cfg.TLS { - err = s.m.ServeTLS(hln, s.cfg.TLSCert, s.cfg.TLSKey) + err = metricsServer.ServeTLS(hln, s.cfg.TLSCert, s.cfg.TLSKey) } else { - err = s.m.Serve(hln) + err = metricsServer.Serve(hln) } - if err != nil { + if err != nil && err != http.ErrServerClosed { s.Stop(err) } }() diff --git a/server/wsConn.go b/server/wsConn.go index 04bda25..4600992 100644 --- a/server/wsConn.go +++ b/server/wsConn.go @@ -127,6 +127,11 @@ func (c *wsConn) dispose() { close(c.work) c.mu.Unlock() + // Explicitly close websocket + if c.ws != nil { + _ = c.ws.Close() + } + c.serv.cache.RemoveConn(c) c.unsubscribeConn() @@ -185,7 +190,7 @@ func (c *wsConn) Tracef(format string, v ...interface{}) { func (c *wsConn) Disconnect(reason string) { if c.ws != nil { c.Tracef("Disconnecting - %s", reason) - c.ws.Close() + _ = c.ws.Close() } } diff --git a/test/ws.go b/test/ws.go index f6e8110..d4d6ee7 100644 --- a/test/ws.go +++ b/test/ws.go @@ -121,7 +121,7 @@ func (c *Conn) Disconnect() { c.s.dcCh = dcCh } - c.ws.Close() + _ = c.ws.Close() <-c.closeCh // Await synchronization