From f561362530d6c83836b3381b54ca66cb01c6389e Mon Sep 17 00:00:00 2001 From: yusing Date: Fri, 5 Dec 2025 01:18:27 +0800 Subject: [PATCH] fix(middleware): skip modify response for websocket and event-stream requests in ServeHTTP --- internal/net/gphttp/middleware/middleware.go | 6 ++++++ 1 file changed, 6 insertions(+) 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()