diff --git a/internal/api/v1/health.go b/internal/api/v1/health.go index 0a3c011..3379022 100644 --- a/internal/api/v1/health.go +++ b/internal/api/v1/health.go @@ -6,13 +6,18 @@ import ( "github.com/coder/websocket" "github.com/coder/websocket/wsjson" - U "github.com/yusing/go-proxy/internal/api/v1/utils" - config "github.com/yusing/go-proxy/internal/config/types" + "github.com/yusing/go-proxy/internal/net/gphttp" + "github.com/yusing/go-proxy/internal/net/gphttp/gpwebsocket" + "github.com/yusing/go-proxy/internal/net/gphttp/httpheaders" "github.com/yusing/go-proxy/internal/route/routes/routequery" ) -func HealthWS(cfg config.ConfigInstance, w http.ResponseWriter, r *http.Request) { - U.PeriodicWS(cfg, w, r, 1*time.Second, func(conn *websocket.Conn) error { - return wsjson.Write(r.Context(), conn, routequery.HealthMap()) - }) +func Health(w http.ResponseWriter, r *http.Request) { + if httpheaders.IsWebsocket(r.Header) { + gpwebsocket.Periodic(w, r, 1*time.Second, func(conn *websocket.Conn) error { + return wsjson.Write(r.Context(), conn, routequery.HealthMap()) + }) + } else { + gphttp.RespondJSON(w, r, routequery.HealthMap()) + } }