From ffcf7c859907c6ef774555a174b00e1b1cd52a2c Mon Sep 17 00:00:00 2001 From: Erik Brakkee Date: Sat, 10 Aug 2024 13:01:40 +0200 Subject: [PATCH] the read call to check for connectivity was doing more harm than good. Removed it. In the end there were situations where the read was blocking indefinitely, finally leading to a deadlock situation. --- pkg/server/converge/websessions.go | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/pkg/server/converge/websessions.go b/pkg/server/converge/websessions.go index 709a543..745de7a 100644 --- a/pkg/server/converge/websessions.go +++ b/pkg/server/converge/websessions.go @@ -71,8 +71,6 @@ func GetUserLocation(r *http.Request) (*time.Location, error) { } func (session *WebSession) WriteNotifications(location *time.Location) { - timer := time.NewTicker(10 * time.Second) - defer timer.Stop() for { select { case notification, ok := <-session.notifications: @@ -85,18 +83,6 @@ func (session *WebSession) WriteNotifications(location *time.Location) { log.Printf("WS connection closed: %v", err) return } - case <-timer.C: - // Read of 0 bytes seems to be more reliable than write - //_, err := session.conn.Write(make([]byte, 0, 0)) - //if err != nil { - // log.Printf("WS connection closed: %v", err) - // return - //} - _, err := session.conn.Read(make([]byte, 0, 0)) - if err != nil { - log.Printf("WS connection closed: %v", err) - return - } } } }