diff --git a/api/tools.sendsse.go b/api/tools.sendsse.go index 95a4609..5337442 100644 --- a/api/tools.sendsse.go +++ b/api/tools.sendsse.go @@ -31,7 +31,7 @@ func SSEDemoSend(c echo.Context) error { } // Send message - lib.SendSSE(channel, message) + lib.SSEServer.SendSSE(channel, message) return c.JSON(http.StatusOK, map[string]string{"status": "message sent"}) } diff --git a/lib/sse.go b/lib/sse.go index cd60300..0702aa8 100644 --- a/lib/sse.go +++ b/lib/sse.go @@ -52,15 +52,15 @@ func (s *SSEServerType) ClientCount(channel string) int { return len(s.clients[channel]) } -func SendSSE(channel string, message string) error { - SSEServer.mu.Lock() - defer SSEServer.mu.Unlock() +func (s *SSEServerType) SendSSE(channel string, message string) { + s.mu.Lock() + defer s.mu.Unlock() - for client := range SSEServer.clients[channel] { - client <- message - } + go func() { + for client := range s.clients[channel] { + client <- message + } + }() LogDebug.Printf("\nMessage broadcast on channel %s: %s\n", channel, message) - - return nil }