diff --git a/internal/net/gphttp/middleware/middleware.go b/internal/net/gphttp/middleware/middleware.go index b34da314..d3aa7e18 100644 --- a/internal/net/gphttp/middleware/middleware.go +++ b/internal/net/gphttp/middleware/middleware.go @@ -12,6 +12,7 @@ import ( "github.com/yusing/godoxy/internal/route/rules" "github.com/yusing/godoxy/internal/serialization" gperr "github.com/yusing/goutils/errs" + "github.com/yusing/goutils/http/httpheaders" "github.com/yusing/goutils/http/reverseproxy" ) @@ -190,6 +191,11 @@ func (m *Middleware) ServeHTTP(next http.HandlerFunc, w http.ResponseWriter, r * } } + if httpheaders.IsWebsocket(r.Header) || r.Header.Get("Accept") == "text/event-stream" { + next(w, r) + return + } + if exec, ok := m.impl.(ResponseModifier); ok { rm := rules.NewResponseModifier(w) defer rm.FlushRelease()