package main
/*
This was entirely generated by GPT4 with the prompt:
write me a simple golang server demonstrating server sent events (sse)
*/
import (
	"fmt"
	"net/http"
	"time"
)
func main() {
	http.HandleFunc("/", serveHome)
	http.HandleFunc("/sse", serveSSE)
	http.ListenAndServe(":8080", nil)
}
func serveHome(w http.ResponseWriter, r *http.Request) {
	html := `
    
    
    
    Server-Sent Events Demo
    Server-Sent Events Demo
    
    
`
	w.Header().Set("Content-Type", "text/html")
	w.Write([]byte(html))
}
func serveSSE(w http.ResponseWriter, r *http.Request) {
	w.Header().Set("Content-Type", "text/event-stream")
	w.Header().Set("Cache-Control", "no-cache")
	w.Header().Set("Connection", "keep-alive")
	flusher, ok := w.(http.Flusher)
	if !ok {
		http.Error(w, "Streaming unsupported!", http.StatusInternalServerError)
		return
	}
	for i := 1; ; i++ {
		fmt.Fprintf(w, "data: Message %d from server\n\n", i)
		flusher.Flush()
		time.Sleep(time.Second)
	}
}