From ec01112d7352e2e835986e862450c87c9344a715 Mon Sep 17 00:00:00 2001 From: Brandon Kauffman Date: Tue, 18 Feb 2025 13:33:33 -0500 Subject: [PATCH 1/2] allow messages to fail without the default statement busy clients can get stuck in this loop if the client disconnects while messages are being sent --- server-sent-event/main.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server-sent-event/main.go b/server-sent-event/main.go index d070b18..5fdf337 100644 --- a/server-sent-event/main.go +++ b/server-sent-event/main.go @@ -111,7 +111,11 @@ func (stream *Event) listen() { // Broadcast message to client case eventMsg := <-stream.Message: for clientMessageChan := range stream.TotalClients { - clientMessageChan <- eventMsg + case clientMessageChan <- eventMsg: + // Message sent successfully + default: + // Client message channel full, dropping message + } } } } From da30facf29a68c635abddd4ef00342dfae67d403 Mon Sep 17 00:00:00 2001 From: Brandon Kauffman Date: Fri, 21 Feb 2025 08:28:22 -0500 Subject: [PATCH 2/2] Update main.go --- server-sent-event/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server-sent-event/main.go b/server-sent-event/main.go index 5fdf337..e1a4b86 100644 --- a/server-sent-event/main.go +++ b/server-sent-event/main.go @@ -114,7 +114,7 @@ func (stream *Event) listen() { case clientMessageChan <- eventMsg: // Message sent successfully default: - // Client message channel full, dropping message + // Failed to send, dropping message } } }