From 85841bcb0fe182febc19506c57b5e7d60c52a540 Mon Sep 17 00:00:00 2001
From: Erik Brakkee <erik@brakkee.org>
Date: Thu, 8 Aug 2024 00:09:35 +0200
Subject: [PATCH] read of 0 bytes to detect connection loss.

---
 pkg/server/converge/websessions.go | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/pkg/server/converge/websessions.go b/pkg/server/converge/websessions.go
index a868204..709a543 100644
--- a/pkg/server/converge/websessions.go
+++ b/pkg/server/converge/websessions.go
@@ -86,7 +86,13 @@ func (session *WebSession) WriteNotifications(location *time.Location) {
 				return
 			}
 		case <-timer.C:
-			_, err := session.conn.Write(make([]byte, 0, 0))
+			// 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