maybe support websockets

This commit is contained in:
bel
2026-09-07 22:58:54 -06:00
parent 35b2a887f3
commit a4e61a8950
4 changed files with 256 additions and 2 deletions
+16
View File
@@ -93,6 +93,22 @@ func (c Config) serveHTTPProxy(w http.ResponseWriter, r *http.Request, endpoint
log.Printf("[%s] %v", c.key(r), err)
}
isWebsocket := r.Header.Get("Connection") == "Upgrade" || r.Header.Get("Se-Fetch-Mode") == "websocket" || r.Header.Get("Sec-WebSocket-Version") != "" || r.Header.Get("Upgrade") == "websocket"
if isWebsocket {
if strings.HasPrefix(u.Scheme, "s") {
u.Scheme = "wss"
} else {
u.Scheme = "ws"
}
if DefaultUpgrader.CheckOrigin == nil {
DefaultUpgrader.CheckOrigin = func(*http.Request) bool {
return true
}
}
NewProxy(u).ServeHTTP(w, r)
return
}
var transport http.Transport
transport.TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
if ip, _ := resolver.FetchOneString(strings.Split(u.Host, ":")[0]); ip != "" {