From e11593eb06f717ce2d794c5f418b641b9ea91592 Mon Sep 17 00:00:00 2001 From: Smile Rex Date: Wed, 4 Mar 2026 01:27:30 +0300 Subject: [PATCH] fix3 --- main.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index 315650e..113eaee 100644 --- a/main.go +++ b/main.go @@ -109,17 +109,25 @@ func main() { mux := http.NewServeMux() mux.HandleFunc("/room/", func(w http.ResponseWriter, r *http.Request) { - // Обязательный заголовок для браузера - w.Header().Set("Alt-Svc", `h3=":443"; ma=2592000`) + // 1. Обязательно даем понять браузеру, что тут есть HTTP/3 (UDP 443) + w.Header().Set("Alt-Svc", `h3=":443"; ma=86400`) - roomName := strings.TrimPrefix(r.URL.Path, "/room/") + // 2. Если это не CONNECT (не WebTransport), а обычный GET + if r.Method != http.MethodConnect { + log.Printf("Received GET request on %s. Sending Alt-Svc to client...", r.URL.Path) + w.WriteHeader(http.StatusOK) + w.Write([]byte("To use WebTransport, the browser needs to see this Alt-Svc header first. Try connecting again now.")) + return + } - // Попытка апгрейда + // 3. Если это CONNECT, пробуем апгрейд sess, err := wt.Upgrade(w, r) if err != nil { log.Printf("Upgrade error: %v", err) return } + + roomName := strings.TrimPrefix(r.URL.Path, "/room/") go server.handleSession(roomName, sess) })