A simple and efficient Server-Sent Events (SSE) handler for Go using the standard library.
go get github.com/Firoz01/gosse func main() { SSEHandler := gosse.NewServer() go SSEHandler.Run() defer SSEHandler.Shutdown() http.HandleFunc("/events", func(w http.ResponseWriter, r *http.Request) { gosse.SSEHandlerEndpoint(SSEHandler, w, r) }) http.ListenAndServe(":8080", nil) }func main() { SSEHandler := gosse.NewServer() go SSEHandler.Run() defer SSEHandler.Shutdown() http.HandleFunc("/events", func(w http.ResponseWriter, r *http.Request) { gosse.SSEHandlerEndpoint(SSEHandler, w, r) }) http.HandleFunc("/publish", func(w http.ResponseWriter, r *http.Request) { eventMessage := []byte("This is a test event message") SSEHandler.BroadcastMessage(eventMessage) w.WriteHeader(http.StatusOK) }) go func() { for { time.Sleep(5 * time.Second) eventMessage := []byte("Periodic event message") SSEHandler.BroadcastMessage(eventMessage) } }() http.ListenAndServe(":8080", nil) } go test -v