package main import ( "encoding/json" "log" "net/http" "time" ) func main() { sseBroker := NewSSEBroker() checker := NewHealthChecker() go func() { ticker := time.NewTicker(30 * time.Second) defer ticker.Stop() for { checker.CheckAll() <-ticker.C } }() http.HandleFunc("/status", func(w http.ResponseWriter, r *http.Request) { statuses := checker.GetStatuses() w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(statuses) }) http.HandleFunc("/events", func(w http.ResponseWriter, r *http.Request) { sseBroker.Handler(w, r) }) log.Println("Serving on :8080") log.Fatal(http.ListenAndServe(":8080", nil)) }